[SRU][PATCH 0/1][J/OEM-5.17/OEM-6.0/K/U] Fix ath11k deadlock on WCN6855
Aaron Ma
aaron.ma at canonical.com
Fri Oct 28 05:07:05 UTC 2022
BugLink: https://bugs.launchpad.net/bugs/1995041
[Impact]
ath11k is in deadlock when stress reboot or suspend on WCN6855.
sometimes kernel hang.
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: Call Trace:
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: <TASK>
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: __schedule+0x240/0x5a0
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: ? resched_curr+0x52/0xc0
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: schedule+0x55/0xd0
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: schedule_timeout+0x115/0x150
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: ? raw_spin_rq_unlock+0x10/0x30
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: ? try_to_wake_up+0x211/0x600
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: ? ath11k_ce_send+0x17a/0x2e0
[ath11k]
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: wait_for_completion+0x8b/0xf0
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: __flush_work.isra.0+0x171/0x270
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: ?
flush_workqueue_prep_pwqs+0x140/0x140
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: __cancel_work_timer+0x11b/0x1a0
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: ?
ath11k_mac_config_mon_status_default+0xcc/0x170 [ath11k]
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: cancel_work_sync+0x10/0x20
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: ath11k_mac_op_stop+0x9f/0x1e0
[ath11k]
Aug 19 01:29:28 Thor-P3-AMD-2 kernel: drv_stop+0x45/0x110 [mac80211]
[Fix]
Fix this by switching from using regulatory_set_wiphy_regd_sync() to
regulatory_set_wiphy_regd(). Now cfg80211 will schedule another
workqueue which handles the locking on it's own.
So the ath11k workqueue can simply exit
without taking any locks, avoiding the deadlock.
[Test]
Verified on hardware, stress reboot and suspend 30 times OK.
[Where problems could occur]
It may break ath11k wifi driver.
Because of the schedule, SRU it as SAUCE from maintainer's tree.
Wen Gong (1):
UBUNTU: SAUCE: wifi: ath11k: avoid deadlock during regulatory update
in ath11k_regd_update()
drivers/net/wireless/ath/ath11k/reg.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
--
2.34.1
More information about the kernel-team
mailing list