Oliver Neukum 34a210
From e9848aed147708a06193b40d78493b0ef6abccf2 Mon Sep 17 00:00:00 2001
Oliver Neukum 34a210
From: Johannes Berg <johannes.berg@intel.com>
Oliver Neukum 34a210
Date: Fri, 28 Jan 2022 14:30:52 +0200
Oliver Neukum 34a210
Subject: [PATCH] iwlwifi: pcie: fix locking when "HW not ready"
Oliver Neukum 34a210
Git-commit: e9848aed147708a06193b40d78493b0ef6abccf2
Oliver Neukum 34a210
References: git-fixes
Oliver Neukum 34a210
Patch-mainline: v5.17-rc5
Oliver Neukum 34a210
Oliver Neukum 34a210
If we run into this error path, we shouldn't unlock the mutex
Oliver Neukum 34a210
since it's not locked since. Fix this.
Oliver Neukum 34a210
Oliver Neukum 34a210
Fixes: a6bd005fe92d ("iwlwifi: pcie: fix RF-Kill vs. firmware load race")
Oliver Neukum 34a210
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Oliver Neukum 34a210
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Oliver Neukum 34a210
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Oliver Neukum 34a210
Link: https://lore.kernel.org/r/iwlwifi.20220128142706.5d16821d1433.Id259699ddf9806459856d6aefbdbe54477aecffd@changeid
Oliver Neukum 34a210
Signed-off-by: Oliver Neukum <oneukum@suse.com>
Oliver Neukum 34a210
---
Oliver Neukum 34a210
 drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 3 +--
Oliver Neukum 34a210
 1 file changed, 1 insertion(+), 2 deletions(-)
Oliver Neukum 34a210
Oliver Neukum 34a210
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
Oliver Neukum 34a210
index a63386a01232..ef14584fc0a1 100644
Oliver Neukum 34a210
--- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
Oliver Neukum 34a210
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
Oliver Neukum 34a210
@@ -1329,8 +1329,7 @@ static int iwl_trans_pcie_start_fw(struct iwl_trans *trans,
Oliver Neukum 34a210
 	/* This may fail if AMT took ownership of the device */
Oliver Neukum 34a210
 	if (iwl_pcie_prepare_card_hw(trans)) {
Oliver Neukum 34a210
 		IWL_WARN(trans, "Exit HW not ready\n");
Oliver Neukum 34a210
-		ret = -EIO;
Oliver Neukum 34a210
-		goto out;
Oliver Neukum 34a210
+		return -EIO;
Oliver Neukum 34a210
 	}
Oliver Neukum 34a210
 
Oliver Neukum 34a210
 	iwl_enable_rfkill_int(trans);
Oliver Neukum 34a210
-- 
Oliver Neukum 34a210
2.40.0
Oliver Neukum 34a210