Search Linux Wireless

Re: [PATCH] wifi: rtw89: fix potential race condition between napi_init and napi_enable

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

 



Ping-Ke Shih <pkshih@xxxxxxxxxxx> wrote:

> A race condition can happen if netdev is registered, but NAPI isn't
> initialized yet, and meanwhile user space starts the netdev that will
> enable NAPI. Then, it hits BUG_ON():
> 
>  kernel BUG at net/core/dev.c:6423!
>  invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
>  CPU: 0 PID: 417 Comm: iwd Not tainted 6.2.7-slab-dirty #3 eb0f5a8a9d91
>  Hardware name: LENOVO 21DL/LNVNB161216, BIOS JPCN20WW(V1.06) 09/20/2022
>  RIP: 0010:napi_enable+0x3f/0x50
>  Code: 48 89 c2 48 83 e2 f6 f6 81 89 08 00 00 02 74 0d 48 83 ...
>  RSP: 0018:ffffada1414f3548 EFLAGS: 00010246
>  RAX: 0000000000000000 RBX: ffffa01425802080 RCX: 0000000000000000
>  RDX: 00000000000002ff RSI: ffffada14e50c614 RDI: ffffa01425808dc0
>  RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
>  R10: 0000000000000001 R11: 0000000000000100 R12: ffffa01425808f58
>  R13: 0000000000000000 R14: ffffa01423498940 R15: 0000000000000001
>  FS:  00007f5577c0a740(0000) GS:ffffa0169fc00000(0000) knlGS:0000000000000000
>  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>  CR2: 00007f5577a19972 CR3: 0000000125a7a000 CR4: 0000000000750ef0
>  PKRU: 55555554
>  Call Trace:
>   <TASK>
>   rtw89_pci_ops_start+0x1c/0x70 [rtw89_pci 6cbc75429515c181cbc386478d5cfb32ffc5a0f8]
>   rtw89_core_start+0xbe/0x160 [rtw89_core fe07ecb874820b6d778370d4acb6ef8a37847f22]
>   rtw89_ops_start+0x26/0x40 [rtw89_core fe07ecb874820b6d778370d4acb6ef8a37847f22]
>   drv_start+0x42/0x100 [mac80211 c07fa22af8c3cf3f7d7ab3884ca990784d72e2d2]
>   ieee80211_do_open+0x311/0x7d0 [mac80211 c07fa22af8c3cf3f7d7ab3884ca990784d72e2d2]
>   ieee80211_open+0x6a/0x90 [mac80211 c07fa22af8c3cf3f7d7ab3884ca990784d72e2d2]
>   __dev_open+0xe0/0x180
>   __dev_change_flags+0x1da/0x250
>   dev_change_flags+0x26/0x70
>   do_setlink+0x37c/0x12c0
>   ? ep_poll_callback+0x246/0x290
>   ? __nla_validate_parse+0x61/0xd00
>   ? __wake_up_common_lock+0x8f/0xd0
> 
> To fix this, follow Jonas' suggestion to switch the order of these
> functions and move register netdev to be the last step of PCI probe.
> Also, correct the error handling of rtw89_core_register_hw().
> 
> Fixes: e3ec7017f6a2 ("rtw89: add Realtek 802.11ax driver")
> Cc: stable@xxxxxxxxxxxxxxx
> Reported-by: Hyeonggon Yoo <42.hyeyoo@xxxxxxxxx>
> Link: https://lore.kernel.org/linux-wireless/CAOiHx=n7EwK2B9CnBR07FVA=sEzFagb8TkS4XC_qBNq8OwcYUg@xxxxxxxxxxxxxx/T/#t
> Suggested-by: Jonas Gorski <jonas.gorski@xxxxxxxxx>
> Tested-by: Larry Finger<Larry.Finger@xxxxxxxxxxxx>
> Reviewed-by: Larry Finger<Larry.Finger@xxxxxxxxxxxx>
> Signed-off-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx>

Patch applied to wireless-next.git, thanks.

47515664ecfb wifi: rtw89: fix potential race condition between napi_init and napi_enable

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/20230323082839.20474-1-pkshih@xxxxxxxxxxx/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches




[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