Patch "wifi: rtw89: avoid to init mgnt_entry list twice when WoWLAN failed" has been added to the 6.12-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: avoid to init mgnt_entry list twice when WoWLAN failed

to the 6.12-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-avoid-to-init-mgnt_entry-list-twice-when-.patch
and it can be found in the queue-6.12 subdirectory.

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



commit b2de2a071967bdf3a29bbb1dc0bf35d5bf783e9f
Author: Chih-Kang Chang <gary.chang@xxxxxxxxxxx>
Date:   Fri Jan 3 10:45:00 2025 +0800

    wifi: rtw89: avoid to init mgnt_entry list twice when WoWLAN failed
    
    [ Upstream commit 2f7667675df1b40b73ecc53b4b8c3189b1e5f2c1 ]
    
    If WoWLAN failed in resume flow, the rtw89_ops_add_interface() triggered
    without removing the interface first. Then the mgnt_entry list init again,
    causing the list_empty() check in rtw89_chanctx_ops_assign_vif()
    useless, and list_add_tail() again. Therefore, we have added a check to
    prevent double adding of the list.
    
    rtw89_8852ce 0000:01:00.0: failed to check wow status disabled
    rtw89_8852ce 0000:01:00.0: wow: failed to check disable fw ready
    rtw89_8852ce 0000:01:00.0: wow: failed to swap to normal fw
    rtw89_8852ce 0000:01:00.0: failed to disable wow
    rtw89_8852ce 0000:01:00.0: failed to resume for wow -110
    rtw89_8852ce 0000:01:00.0: MAC has already powered on
    i2c_hid_acpi i2c-ILTK0001:00: PM: acpi_subsys_resume+0x0/0x60 returned 0 after 284705 usecs
    list_add corruption. prev->next should be next (ffff9d9719d82228), but was ffff9d9719f96030. (prev=ffff9d9719f96030).
    ------------[ cut here ]------------
    kernel BUG at lib/list_debug.c:34!
    invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
    CPU: 2 PID: 6918 Comm: kworker/u8:19 Tainted: G     U     O
    Hardware name: Google Anraggar/Anraggar, BIOS Google_Anraggar.15217.514.0 03/25/2024
    Workqueue: events_unbound async_run_entry_fn
    RIP: 0010:__list_add_valid_or_report+0x9f/0xb0
    Code: e8 56 89 ff ff 0f 0b 48 c7 c7 3e fc e0 96 48 89 c6 e8 45 89 ff ...
    RSP: 0018:ffffa51b42bbbaf0 EFLAGS: 00010246
    RAX: 0000000000000075 RBX: ffff9d9719d82ab0 RCX: 13acb86e047a4400
    RDX: 3fffffffffffffff RSI: 0000000000000000 RDI: 00000000ffffdfff
    RBP: ffffa51b42bbbb28 R08: ffffffff9768e250 R09: 0000000000001fff
    R10: ffffffff9765e250 R11: 0000000000005ffd R12: ffff9d9719f95c40
    R13: ffff9d9719f95be8 R14: ffff9d97081bfd78 R15: ffff9d9719d82060
    FS:  0000000000000000(0000) GS:ffff9d9a6fb00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007e7d029a4060 CR3: 0000000345e38000 CR4: 0000000000750ee0
    PKRU: 55555554
    Call Trace:
     <TASK>
     ? __die_body+0x68/0xb0
     ? die+0xaa/0xd0
     ? do_trap+0x9f/0x170
     ? __list_add_valid_or_report+0x9f/0xb0
     ? __list_add_valid_or_report+0x9f/0xb0
     ? handle_invalid_op+0x69/0x90
     ? __list_add_valid_or_report+0x9f/0xb0
     ? exc_invalid_op+0x3c/0x50
     ? asm_exc_invalid_op+0x16/0x20
     ? __list_add_valid_or_report+0x9f/0xb0
     rtw89_chanctx_ops_assign_vif+0x1f9/0x210 [rtw89_core cbb375c44bf28564ce479002bff66617a25d9ac1]
     ? __mutex_unlock_slowpath+0xa0/0xf0
     rtw89_ops_assign_vif_chanctx+0x4b/0x90 [rtw89_core cbb375c44bf28564ce479002bff66617a25d9ac1]
     drv_assign_vif_chanctx+0xa7/0x1f0 [mac80211 6efaad16237edaaea0868b132d4f93ecf918a8b6]
     ieee80211_reconfig+0x9cb/0x17b0 [mac80211 6efaad16237edaaea0868b132d4f93ecf918a8b6]
     ? __pfx_wiphy_resume+0x10/0x10 [cfg80211 572d03acaaa933fe38251be7fce3b3675284b8ed]
     ? dev_printk_emit+0x51/0x70
     ? _dev_info+0x6e/0x90
     wiphy_resume+0x89/0x180 [cfg80211 572d03acaaa933fe38251be7fce3b3675284b8ed]
     ? __pfx_wiphy_resume+0x10/0x10 [cfg80211 572d03acaaa933fe38251be7fce3b3675284b8ed]
     dpm_run_callback+0x37/0x1e0
     device_resume+0x26d/0x4b0
     ? __pfx_dpm_watchdog_handler+0x10/0x10
     async_resume+0x1d/0x30
     async_run_entry_fn+0x29/0xd0
     worker_thread+0x397/0x970
     kthread+0xed/0x110
     ? __pfx_worker_thread+0x10/0x10
     ? __pfx_kthread+0x10/0x10
     ret_from_fork+0x38/0x50
     ? __pfx_kthread+0x10/0x10
     ret_from_fork_asm+0x1b/0x30
     </TASK>
    
    Fixes: 68ec751b2881 ("wifi: rtw89: chan: manage active interfaces")
    Signed-off-by: Chih-Kang Chang <gary.chang@xxxxxxxxxxx>
    Signed-off-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx>
    Link: https://patch.msgid.link/20250103024500.14990-1-pkshih@xxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/realtek/rtw89/mac80211.c b/drivers/net/wireless/realtek/rtw89/mac80211.c
index 299566e2f612d..a04717b847a0f 100644
--- a/drivers/net/wireless/realtek/rtw89/mac80211.c
+++ b/drivers/net/wireless/realtek/rtw89/mac80211.c
@@ -189,10 +189,10 @@ static int rtw89_ops_add_interface(struct ieee80211_hw *hw,
 
 	rtw89_core_txq_init(rtwdev, vif->txq);
 
-	if (!rtw89_rtwvif_in_list(rtwdev, rtwvif))
+	if (!rtw89_rtwvif_in_list(rtwdev, rtwvif)) {
 		list_add_tail(&rtwvif->list, &rtwdev->rtwvifs_list);
-
-	INIT_LIST_HEAD(&rtwvif->mgnt_entry);
+		INIT_LIST_HEAD(&rtwvif->mgnt_entry);
+	}
 
 	ether_addr_copy(rtwvif->mac_addr, vif->addr);
 




[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