wifi: iwlwifi: pcie: fix locking on invalid TOP reset
authorJohannes Berg <johannes.berg@intel.com>
Wed, 25 Jun 2025 17:42:21 +0000 (20:42 +0300)
committerMiri Korenblit <miriam.rachel.korenblit@intel.com>
Sun, 29 Jun 2025 11:01:29 +0000 (14:01 +0300)
If a TOP reset were to ever be erroneously requested on HW
prior to SC, the code warns and returns, but doesn't take
care to unlock the mutex in this case. Fix that.

Fixes: 909e1be65462 ("wifi: iwlwifi: implement TOP reset")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/r/202506100707.WAnP5ePA-lkp@intel.com/
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250625204210.19a0378838b1.I6bdc58d4996e995e1358ad94d4cc5017f3abf47b@changeid
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c

index c8f4f3a1d2eb5122286ed0ed16f80d4fe5b26110..5a9c3b7976a109bf24555c17e95b4b18f513e4f7 100644 (file)
@@ -546,8 +546,10 @@ again:
        }
 
        if (WARN_ON(trans->do_top_reset &&
-                   trans->mac_cfg->device_family < IWL_DEVICE_FAMILY_SC))
-               return -EINVAL;
+                   trans->mac_cfg->device_family < IWL_DEVICE_FAMILY_SC)) {
+               ret = -EINVAL;
+               goto out;
+       }
 
        /* we need to wait later - set state */
        if (trans->do_top_reset)