]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
wifi: iwlwifi: fw: avoid bad FW config on RXQ DMA failure
authorJohannes Berg <johannes.berg@intel.com>
Sun, 12 May 2024 04:31:03 +0000 (07:31 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 23 May 2024 08:51:47 +0000 (10:51 +0200)
In practice, iwl_trans_get_rxq_dma_data() will not fail,
it only can do that if called with the wrong arguments.
But it does have an error value and doesn't initialize
the argument when it fails, so don't use the value then.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240512072733.faf3a1b87589.I77c950173cb914676fbd28483e5ef420bb9f1bc9@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/init.c

index 135bd48bfe9fa80fbd263b2c8ffa3348fa7440fd..d8b083be5b6b5e5a60a582870185d1788c1d38ee 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
 /*
  * Copyright (C) 2017 Intel Deutschland GmbH
- * Copyright (C) 2019-2021 Intel Corporation
+ * Copyright (C) 2019-2021, 2024 Intel Corporation
  */
 #include "iwl-drv.h"
 #include "runtime.h"
@@ -135,7 +135,9 @@ int iwl_configure_rxq(struct iwl_fw_runtime *fwrt)
                struct iwl_trans_rxq_dma_data data;
 
                cmd->data[i].q_num = i + 1;
-               iwl_trans_get_rxq_dma_data(fwrt->trans, i + 1, &data);
+               ret = iwl_trans_get_rxq_dma_data(fwrt->trans, i + 1, &data);
+               if (ret)
+                       goto out;
 
                cmd->data[i].fr_bd_cb = cpu_to_le64(data.fr_bd_cb);
                cmd->data[i].urbd_stts_wrptr =
@@ -149,6 +151,7 @@ int iwl_configure_rxq(struct iwl_fw_runtime *fwrt)
 
        ret = iwl_trans_send_cmd(fwrt->trans, &hcmd);
 
+out:
        kfree(cmd);
 
        if (ret)