Search Linux Wireless

Re: [PATCH 1/3] wifi: rtw89: fix proceeding MCC with wrong scanning state after sequence changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ping-Ke Shih <pkshih@xxxxxxxxxxx> wrote:

> From: Zong-Zhe Yang <kevin_yang@xxxxxxxxxxx>
> 
> When starting/proceeding MCC, it will abort an ongoing hw scan process.
> In the proceeding cases, it unexpectedly tries to abort a non-exist hw
> scan process. Then, a trace shown at the bottom will happen. This problem
> is caused by a previous commit which changed some call sequence inside
> rtw89_hw_scan_complete() to fix some coex problems. These changes lead
> to our scanning flag was not cleared when proceeding MCC. To keep the
> fixes on coex, and resolve the problem here, re-consider the related
> call sequence.
> 
> The known sequence requirements are listed below.
> 
> * the old sequence:
> 	A. notify coex
> 	B. clear scanning flag
> 	C. proceed chanctx
> 		C-1. set channel
> 		C-2. proceed MCC
> (the problem: A needs to be after C-1)
> 
> * the current sequence:
> 	C. proceed chanctx
> 		C-1. set channel
> 		C-2. proceed MCC
> 	A. notify coex
> 	B. clear scanning flag
> (the problem: C-2 needs to be after B)
> 
> So, now let hw scan caller pass a callback to proceed chanctx if needed.
> Then, the new sequence will be like the below.
> 	C-1. set channel
> 	A. notify coex
> 	B. clear scanning flag
> 	C-2. proceed MCC
> 
> The following is the kernel log for the problem in current sequence.
> 
> rtw89_8852be 0000:04:00.0: rtw89_hw_scan_offload failed ret -110
> ------------[ cut here ]------------
> [...]
> CPU: 2 PID: 3991 Comm: kworker/u16:0 Tainted: G           OE      6.6.17 #3
> Hardware name: LENOVO 2356AD1/2356AD1, BIOS G7ETB3WW (2.73 ) 11/28/2018
> Workqueue: events_unbound wiphy_work_cancel [cfg80211]
> RIP: 0010:ieee80211_sched_scan_stopped+0xaea/0xd80 [mac80211]
> Code: 9c 24 d0 11 00 00 49 39 dd 0f 85 46 ff ff ff 4c 89 e7 e8 09 2d
> RSP: 0018:ffffb27783643d48 EFLAGS: 00010246
> RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
> RDX: ffff8a2280964bc0 RSI: 0000000000000000 RDI: ffff8a23df580900
> RBP: ffffb27783643d88 R08: 0000000000000001 R09: 0000000000000400
> R10: 0000000000000000 R11: 0000000000008268 R12: ffff8a23df580900
> R13: ffff8a23df581b00 R14: 0000000000000000 R15: 0000000000000000
> FS:  0000000000000000(0000) GS:ffff8a258e680000(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00007f26a0654000 CR3: 000000002ea2e002 CR4: 00000000001706e0
> Call Trace:
>  <TASK>
>  ? show_regs+0x68/0x70
>  ? ieee80211_sched_scan_stopped+0xaea/0xd80 [mac80211]
>  ? __warn+0x8f/0x150
>  ? ieee80211_sched_scan_stopped+0xaea/0xd80 [mac80211]
>  ? report_bug+0x1f5/0x200
>  ? handle_bug+0x46/0x80
>  ? exc_invalid_op+0x19/0x70
>  ? asm_exc_invalid_op+0x1b/0x20
>  ? ieee80211_sched_scan_stopped+0xaea/0xd80 [mac80211]
>  ieee80211_scan_work+0x14a/0x650 [mac80211]
>  ? __queue_work+0x10f/0x410
>  wiphy_work_cancel+0x2fb/0x310 [cfg80211]
>  process_scheduled_works+0x9d/0x390
>  ? __pfx_worker_thread+0x10/0x10
>  worker_thread+0x15b/0x2d0
>  ? __pfx_worker_thread+0x10/0x10
>  kthread+0x108/0x140
>  ? __pfx_kthread+0x10/0x10
>  ret_from_fork+0x3c/0x60
>  ? __pfx_kthread+0x10/0x10
>  ret_from_fork_asm+0x1b/0x30
>  </TASK>
> ---[ end trace 0000000000000000 ]---
> 
> Fixes: f16c40acd319 ("wifi: rtw89: Fix TX fail with A2DP after scanning")
> Signed-off-by: Zong-Zhe Yang <kevin_yang@xxxxxxxxxxx>
> Signed-off-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx>

3 patch(es) applied to rtw-next branch of rtw.git, thanks.

e47f0a589854 wifi: rtw89: fix proceeding MCC with wrong scanning state after sequence changes
e4790b3e314a wifi: rtw89: chan: fix soft lockup in rtw89_entity_recalc_mgnt_roles()
b2658bf4d7f2 wifi: rtw89: correct header conversion rule for MLO only

---
https://github.com/pkshih/rtw.git





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux