Patch "wifi: rtw89: chan: fix soft lockup in rtw89_entity_recalc_mgnt_roles()" has been added to the 6.13-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: rtw89: chan: fix soft lockup in rtw89_entity_recalc_mgnt_roles()

to the 6.13-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-rtw89-chan-fix-soft-lockup-in-rtw89_entity_reca.patch
and it can be found in the queue-6.13 subdirectory.

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



commit 711168812e2afdde00d2b53f08abb56c71874788
Author: Zong-Zhe Yang <kevin_yang@xxxxxxxxxxx>
Date:   Tue Dec 31 08:48:09 2024 +0800

    wifi: rtw89: chan: fix soft lockup in rtw89_entity_recalc_mgnt_roles()
    
    [ Upstream commit e4790b3e314a4814f1680a5dc552031fb199b878 ]
    
    During rtw89_entity_recalc_mgnt_roles(), there is a normalizing process
    which will re-order the list if an entry with target pattern is found.
    And once one is found, should have aborted the list_for_each_entry. But,
    `break` just aborted the inner for-loop. The outer list_for_each_entry
    still continues. Normally, only the first entry will match the target
    pattern, and the re-ordering will change nothing, so there won't be
    soft lockup. However, in some special cases, soft lockup would happen.
    
    Fix it by `goto fill` to break from the list_for_each_entry.
    
    The following is a sample of kernel log for this problem.
    
    watchdog: BUG: soft lockup - CPU#1 stuck for 26s! [wpa_supplicant:2055]
    [...]
    RIP: 0010:rtw89_entity_recalc ([...] chan.c:392 chan.c:479) rtw89_core
    [...]
    
    Fixes: 68ec751b2881 ("wifi: rtw89: chan: manage active interfaces")
    Signed-off-by: Zong-Zhe Yang <kevin_yang@xxxxxxxxxxx>
    Signed-off-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx>
    Link: https://patch.msgid.link/20241231004811.8646-3-pkshih@xxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/realtek/rtw89/chan.c b/drivers/net/wireless/realtek/rtw89/chan.c
index abc78716596d0..c06d305519df4 100644
--- a/drivers/net/wireless/realtek/rtw89/chan.c
+++ b/drivers/net/wireless/realtek/rtw89/chan.c
@@ -391,11 +391,12 @@ static void rtw89_entity_recalc_mgnt_roles(struct rtw89_dev *rtwdev)
 
 				list_del(&role->mgnt_entry);
 				list_add(&role->mgnt_entry, &mgnt->active_list);
-				break;
+				goto fill;
 			}
 		}
 	}
 
+fill:
 	list_for_each_entry(role, &mgnt->active_list, mgnt_entry) {
 		if (unlikely(pos >= RTW89_MAX_INTERFACE_NUM)) {
 			rtw89_warn(rtwdev,




[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