wifi: iwlwifi: dbg: use bit of DRAM alloc ID to store failed allocs
authorRotem Saado <rotem.saado@intel.com>
Wed, 2 Nov 2022 14:59:52 +0000 (16:59 +0200)
committerGregory Greenman <gregory.greenman@intel.com>
Thu, 10 Nov 2022 11:26:48 +0000 (13:26 +0200)
The failed_alloc variable is used as a bitmask in the loop where we
check DRAM allocations.  But erroneously, we were clearing the DRAM
alloc IDs we removed as an integer.

Fix that by clearing them as bits instead.

Signed-off-by: Rotem Saado <rotem.saado@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20221102165239.688dec28b1d9.I470b8d29c28d16f25f4192773f075940de7ed33c@changeid
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c

index cd7a84c553e955e49be1437269b86818fc9fbb4d..6d6c1299964546d63585e77d496706eff9768afd 100644 (file)
@@ -1327,7 +1327,7 @@ static void iwl_dbg_tlv_init_cfg(struct iwl_fw_runtime *fwrt)
                             "WRT: removing allocation id %d from region id %d\n",
                             le32_to_cpu(reg->dram_alloc_id), i);
 
-               failed_alloc &= ~le32_to_cpu(reg->dram_alloc_id);
+               failed_alloc &= ~BIT(le32_to_cpu(reg->dram_alloc_id));
                fwrt->trans->dbg.unsupported_region_msk |= BIT(i);
 
                kfree(*active_reg);