Patch "ath11k: Avoid reg rules update during firmware recovery" has been added to the 5.14-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

    ath11k: Avoid reg rules update during firmware recovery

to the 5.14-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:
     ath11k-avoid-reg-rules-update-during-firmware-recove.patch
and it can be found in the queue-5.14 subdirectory.

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



commit a06687073978ff98b6f5f17c1e86a0ac404cf064
Author: Sriram R <srirrama@xxxxxxxxxxxxxx>
Date:   Tue Sep 28 12:05:40 2021 +0300

    ath11k: Avoid reg rules update during firmware recovery
    
    [ Upstream commit 69a0fcf8a9f2273040d03e5ee77c9689c09e9d3a ]
    
    During firmware recovery, the default reg rules which are
    received via WMI_REG_CHAN_LIST_CC_EVENT can overwrite
    the currently configured user regd.
    
    See below snap for example,
    
    root@OpenWrt:/# iw reg get | grep country
    country FR: DFS-ETSI
    country FR: DFS-ETSI
    country FR: DFS-ETSI
    country FR: DFS-ETSI
    
    root@OpenWrt:/# echo assert > /sys/kernel/debug/ath11k/ipq8074\ hw2.0/simulate_f
    w_crash
    <snip>
    [ 5290.471696] ath11k c000000.wifi1: pdev 1 successfully recovered
    
    root@OpenWrt:/# iw reg get | grep country
    country FR: DFS-ETSI
    country US: DFS-FCC
    country US: DFS-FCC
    country US: DFS-FCC
    
    In the above, the user configured country 'FR' is overwritten
    when the rules of default country 'US' are received and updated during
    recovery. Hence avoid processing of these rules in general
    during firmware recovery as they have been already applied during
    driver registration or after last set user country is configured.
    
    This scenario applies for both AP and STA devices basically because
    cfg80211 is not aware of the recovery and only the driver recovers, but
    changing or resetting of the reg domain during recovery is not needed so
    as to continue with the configured regdomain currently in use.
    
    Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01460-QCAHKSWPL_SILICONZ-1
    
    Signed-off-by: Sriram R <srirrama@xxxxxxxxxxxxxx>
    Signed-off-by: Jouni Malinen <jouni@xxxxxxxxxxxxxx>
    Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20210721212029.142388-3-jouni@xxxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/ath/ath11k/wmi.c b/drivers/net/wireless/ath/ath11k/wmi.c
index 27c060dd3fb47..fa27115483c6c 100644
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -5793,6 +5793,17 @@ static int ath11k_reg_chan_list_event(struct ath11k_base *ab, struct sk_buff *sk
 
 	pdev_idx = reg_info->phy_id;
 
+	/* Avoid default reg rule updates sent during FW recovery if
+	 * it is already available
+	 */
+	spin_lock(&ab->base_lock);
+	if (test_bit(ATH11K_FLAG_RECOVERY, &ab->dev_flags) &&
+	    ab->default_regd[pdev_idx]) {
+		spin_unlock(&ab->base_lock);
+		goto mem_free;
+	}
+	spin_unlock(&ab->base_lock);
+
 	if (pdev_idx >= ab->num_radios) {
 		/* Process the event for phy0 only if single_pdev_only
 		 * is true. If pdev_idx is valid but not 0, discard the



[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