]> www.infradead.org Git - nvme.git/commitdiff
wifi: iwlwifi: mvm: Fix scan abort handling with HW rfkill
authorIlan Peer <ilan.peer@intel.com>
Mon, 13 May 2024 10:27:13 +0000 (13:27 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 29 May 2024 13:30:14 +0000 (15:30 +0200)
When HW rfkill is toggled to disable the RF, the flow to stop scan is
called. When trying to send the command to abort the scan, since
HW rfkill is toggled, the command is not sent due to rfkill being
asserted, and -ERFKILL is returned from iwl_trans_send_cmd(), but this
is silently ignored in iwl_mvm_send_cmd() and thus the scan abort flow
continues to wait for scan complete notification and fails. Since it
fails, the UID to type mapping is not cleared, and thus a warning is
later fired when trying to stop the interface.

To fix this, modify the UMAC scan abort flow to force sending the
scan abort command even when in rfkill, so stop the FW from accessing
the radio etc.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240513132416.8cbe2f8c1a97.Iffe235c12a919dafec88eef399eb1f7bae2c5bdb@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/scan.c

index 9739c38ef8241c6d822edd84e3f18c3954960370..b5f664ae5a17d0677e10aa9e4d79bf3152130e1c 100644 (file)
@@ -3322,10 +3322,11 @@ static int iwl_mvm_umac_scan_abort(struct iwl_mvm *mvm, int type)
 
        ret = iwl_mvm_send_cmd_pdu(mvm,
                                   WIDE_ID(IWL_ALWAYS_LONG_GROUP, SCAN_ABORT_UMAC),
-                                  0, sizeof(cmd), &cmd);
+                                  CMD_SEND_IN_RFKILL, sizeof(cmd), &cmd);
        if (!ret)
                mvm->scan_uid_status[uid] = type << IWL_MVM_SCAN_STOPPING_SHIFT;
 
+       IWL_DEBUG_SCAN(mvm, "Scan abort: ret=%d\n", ret);
        return ret;
 }