]> www.infradead.org Git - linux-platform-drivers-x86.git/commitdiff
iwlwifi: pcie: avoid potential PNVM leaks
authorJohannes Berg <johannes.berg@intel.com>
Fri, 15 Jan 2021 11:05:49 +0000 (13:05 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 25 Jan 2021 13:52:48 +0000 (15:52 +0200)
If we erroneously try to set the PNVM data again after it has
already been set, we could leak the old DMA memory. Avoid that
and warn, we shouldn't be doing this.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Fixes: 6972592850c0 ("iwlwifi: read and parse PNVM file")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/iwlwifi.20210115130252.929c2d680429.I086b9490e6c005f3bcaa881b617e9f61908160f3@changeid
drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c

index 36bf414a388af5101060d9b6a2b3189fa82df52f..afe5852284356b9f23fb794a530bd305800d7dda 100644 (file)
@@ -294,6 +294,9 @@ int iwl_trans_pcie_ctx_info_gen3_set_pnvm(struct iwl_trans *trans,
                return ret;
        }
 
+       if (WARN_ON(prph_sc_ctrl->pnvm_cfg.pnvm_size))
+               return -EBUSY;
+
        prph_sc_ctrl->pnvm_cfg.pnvm_base_addr =
                cpu_to_le64(trans_pcie->pnvm_dram.physical);
        prph_sc_ctrl->pnvm_cfg.pnvm_size =