From: Dan Carpenter <dan.carpenter@oracle.com>
Date: Thu, 14 Jun 2012 18:35:26 +0000 (+0300)
Subject: iwlwifi: unlock on error path
X-Git-Tag: firefly_0821_release~3680^2~2381^2~57^2~288
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=daf67ce8cffd148308ae15c25fb06c1fc20c88f1;p=firefly-linux-kernel-4.4.55.git

iwlwifi: unlock on error path

We introduced a lock here in ff1ffb850b ("iwlwifi: fix dynamic
loading").  But we missed an error path which needs an unlock.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---

diff --git a/drivers/net/wireless/iwlwifi/iwl-drv.c b/drivers/net/wireless/iwlwifi/iwl-drv.c
index 095547b37a27..a175997e7829 100644
--- a/drivers/net/wireless/iwlwifi/iwl-drv.c
+++ b/drivers/net/wireless/iwlwifi/iwl-drv.c
@@ -911,8 +911,10 @@ static void iwl_ucode_callback(const struct firmware *ucode_raw, void *context)
 		const struct iwl_op_mode_ops *ops = op->ops;
 		drv->op_mode = ops->start(drv->trans, drv->cfg, &drv->fw);
 
-		if (!drv->op_mode)
+		if (!drv->op_mode) {
+			mutex_unlock(&iwlwifi_opmode_table_mtx);
 			goto out_unbind;
+		}
 	} else {
 		load_module = true;
 	}