Patch "wifi: iwlwifi: mvm: Fix scan abort handling with HW rfkill" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    wifi: iwlwifi: mvm: Fix scan abort handling with HW rfkill

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     wifi-iwlwifi-mvm-fix-scan-abort-handling-with-hw-rfk.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 18c64aa114ecb2df5d3572b3df87c172a6fcddc2
Author: Ilan Peer <ilan.peer@xxxxxxxxx>
Date:   Mon May 13 13:27:13 2024 +0300

    wifi: iwlwifi: mvm: Fix scan abort handling with HW rfkill
    
    [ Upstream commit e6dd2936ce7ce94a1915b799f8af8193ec628e87 ]
    
    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@xxxxxxxxx>
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@xxxxxxxxx>
    Link: https://msgid.link/20240513132416.8cbe2f8c1a97.Iffe235c12a919dafec88eef399eb1f7bae2c5bdb@changeid
    Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
index 150beeb9df117..6ef932e6299da 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
@@ -3242,10 +3242,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;
 }
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux