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 cd7a84c..6d6c129 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);