Search Linux Wireless

RE: RCU WARNING Splat from rtw8822bu

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

 




> -----Original Message-----
> From: Larry Finger <larry.finger@xxxxxxxxx> On Behalf Of Larry Finger
> Sent: Monday, May 8, 2023 3:24 AM
> To: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>; Ping-Ke Shih <pkshih@xxxxxxxxxxx>
> Cc: linux-wireless <linux-wireless@xxxxxxxxxxxxxxx>
> Subject: RCU WARNING Splat from rtw8822bu
> 
> Hi,
> 
> I got the following WARNING splat from rtw8822bu. Driver rtw89_8852be was
> loaded, but inactive. This is the only instance of this warning in my logs even
> though I have been testing this driver quite a lot.
> 

[...]

> [18177.576418] Workqueue: phy3 ieee80211_chswitch_work [mac80211]
> [18177.576469] RIP: 0010:rcu_note_context_switch+0x571/0x5d0
> [18177.576472] Code: 00 00 00 00 0f 85 65 fd ff ff 49 89 84 24 a0 00 00 00 e9 58
> fd ff ff 48 c7 c7 60 66 ec b0 c6 05 96 5f 76 01 01 e8 af 0d f6 ff <0f> 0b e9 de
> fa ff ff c6 43 11 00 48 8b 73 20 ba 01 00 00 00 48 8b
> [18177.576473] RSP: 0018:ffffa937cb0afa50 EFLAGS: 00010086
> [18177.576475] RAX: 0000000000000000 RBX: ffff8d5b23233e80 RCX: 0000000000000027
> [18177.576476] RDX: ffff8d5b232224c8 RSI: 0000000000000001 RDI: ffff8d5b232224c0
> [18177.576477] RBP: 0000000000000000 R08: 0000000000000000 R09: ffffa937cb0af8f8
> [18177.576478] R10: 0000000000000003 R11: ffff8d5b2f546fa8 R12: ffff8d5b23233040
> [18177.576479] R13: ffff8d59a3475100 R14: ffff8d59a3475100 R15: ffffa937cb0afc00
> [18177.576480] FS:  0000000000000000(0000) GS:ffff8d5b23200000(0000)
> knlGS:0000000000000000
> [18177.576481] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [18177.576483] CR2: 00007f0b70230fc4 CR3: 000000010dc34004 CR4: 00000000001706f0
> [18177.576484] Call Trace:
> [18177.576485]  <TASK>
> [18177.576486]  __schedule+0xb0/0x1460
> [18177.576492]  ? __mod_timer+0x116/0x360
> [18177.576495]  schedule+0x5a/0xc0
> [18177.576497]  schedule_timeout+0x87/0x150
> [18177.576500]  ? trace_raw_output_tick_stop+0x60/0x60
> [18177.576502]  wait_for_completion_timeout+0x7b/0x140
> [18177.576505]  usb_start_wait_urb+0x82/0x160 [usbcore
> 3226d314cb1ead5093f872b7ec783a0667c9bdaa]
> [18177.576529]  usb_control_msg+0xe3/0x140 [usbcore
> 3226d314cb1ead5093f872b7ec783a0667c9bdaa]
> [18177.576547]  rtw_usb_read+0x88/0xe0 [rtw_usb
> ea7c9ef4045ae47f255f6c8259d13b8259ad6fcd]
> [18177.576552]  rtw_usb_read8+0xf/0x10 [rtw_usb
> ea7c9ef4045ae47f255f6c8259d13b8259ad6fcd]
> [18177.576556]  rtw_fw_send_h2c_command+0xa0/0x170 [rtw_core
> d6ae475d8b91a371feee3d61c7b6a8180a974991]
> [18177.576571]  rtw_fw_send_ra_info+0xc9/0xf0 [rtw_core
> d6ae475d8b91a371feee3d61c7b6a8180a974991]
> [18177.576584]  drv_sta_rc_update+0x7c/0x160 [mac80211
> c276bd403dbb068b66ac9ffb0a8f27d6e63e5c7c]
> [18177.576613]  ieee80211_chan_bw_change+0xfb/0x110 [mac80211
> c276bd403dbb068b66ac9ffb0a8f27d6e63e5c7c]

The ieee80211_ops::sta_rc_update must be atomic, because ieee80211_chan_bw_change()
holds rcu_read lock while calling drv_sta_rc_update(), so I think a simple way is
to create a work to do original things. I will make a fix later.

Ping-Ke





[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