Patch "wifi: ath12k: fix firmware crash due to invalid peer nss" has been added to the 6.10-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: ath12k: fix firmware crash due to invalid peer nss

to the 6.10-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-ath12k-fix-firmware-crash-due-to-invalid-peer-n.patch
and it can be found in the queue-6.10 subdirectory.

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



commit 461bab67ef0d6d721f206bdb84dfa4d36ffeec43
Author: Ajith C <quic_ajithc@xxxxxxxxxxx>
Date:   Thu Jun 13 11:05:28 2024 +0530

    wifi: ath12k: fix firmware crash due to invalid peer nss
    
    [ Upstream commit db163a463bb93cd3e37e1e7b10b9726fb6f95857 ]
    
    Currently, if the access point receives an association
    request containing an Extended HE Capabilities Information
    Element with an invalid MCS-NSS, it triggers a firmware
    crash.
    
    This issue arises when EHT-PHY capabilities shows support
    for a bandwidth and MCS-NSS set for that particular
    bandwidth is filled by zeros and due to this, driver obtains
    peer_nss as 0 and sending this value to firmware causes
    crash.
    
    Address this issue by implementing a validation step for
    the peer_nss value before passing it to the firmware. If
    the value is greater than zero, proceed with forwarding
    it to the firmware. However, if the value is invalid,
    reject the association request to prevent potential
    firmware crashes.
    
    Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
    
    Signed-off-by: Ajith C <quic_ajithc@xxxxxxxxxxx>
    Acked-by: Jeff Johnson <quic_jjohnson@xxxxxxxxxxx>
    Signed-off-by: Kalle Valo <quic_kvalo@xxxxxxxxxxx>
    Link: https://patch.msgid.link/20240613053528.2541645-1-quic_ajithc@xxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
index 71b4ec7717d5..7037004ce977 100644
--- a/drivers/net/wireless/ath/ath12k/mac.c
+++ b/drivers/net/wireless/ath/ath12k/mac.c
@@ -3847,6 +3847,11 @@ static int ath12k_station_assoc(struct ath12k *ar,
 
 	ath12k_peer_assoc_prepare(ar, vif, sta, &peer_arg, reassoc);
 
+	if (peer_arg.peer_nss < 1) {
+		ath12k_warn(ar->ab,
+			    "invalid peer NSS %d\n", peer_arg.peer_nss);
+		return -EINVAL;
+	}
 	ret = ath12k_wmi_send_peer_assoc_cmd(ar, &peer_arg);
 	if (ret) {
 		ath12k_warn(ar->ab, "failed to run peer assoc for STA %pM vdev %i: %d\n",




[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