* [PATCH rtw-next] Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users"
@ 2025-12-06 18:32 Bitterblue Smith
2025-12-08 0:40 ` Ping-Ke Shih
2025-12-15 8:49 ` Ping-Ke Shih
0 siblings, 2 replies; 10+ messages in thread
From: Bitterblue Smith @ 2025-12-06 18:32 UTC (permalink / raw)
To: linux-wireless@vger.kernel.org; +Cc: Ping-Ke Shih, Marco Crivellari
This reverts commit 9c194fe4625db18f93d5abcfb7f7997557a0b29d.
This commit breaks all USB wifi adapters supported by rtw88:
usb 1-2: new high-speed USB device number 6 using xhci_hcd
usb 1-2: New USB device found, idVendor=2357, idProduct=0138, bcdDevice= 2.10
usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-2: Product: 802.11ac NIC
usb 1-2: Manufacturer: Realtek
usb 1-2: SerialNumber: 123456
------------[ cut here ]------------
WARNING: CPU: 3 PID: 152 at kernel/workqueue.c:5667 alloc_workqueue_noprof+0x676/0x770
[...]
Call Trace:
<TASK>
? rtw_usb_probe+0x30e/0xa5c [rtw88_usb 4af3cb64eedafeecbfb08f80c1e9e2893e2ee7a6]
rtw_usb_probe+0x3eb/0xa5c [rtw88_usb 4af3cb64eedafeecbfb08f80c1e9e2893e2ee7a6]
usb_probe_interface+0xdd/0x2c0
really_probe+0xdb/0x340
? pm_runtime_barrier+0x55/0x90
? __pfx___device_attach_driver+0x10/0x10
__driver_probe_device+0x78/0x140
driver_probe_device+0x1f/0xa0
__device_attach_driver+0x89/0x110
bus_for_each_drv+0x8f/0xe0
__device_attach+0xb0/0x1c0
bus_probe_device+0x90/0xa0
device_add+0x663/0x880
usb_set_configuration+0x5a5/0x870
usb_generic_driver_probe+0x4a/0x70
usb_probe_device+0x3d/0x140
? driver_sysfs_add+0x59/0xd0
really_probe+0xdb/0x340
? pm_runtime_barrier+0x55/0x90
? __pfx___device_attach_driver+0x10/0x10
__driver_probe_device+0x78/0x140
driver_probe_device+0x1f/0xa0
__device_attach_driver+0x89/0x110
bus_for_each_drv+0x8f/0xe0
__device_attach+0xb0/0x1c0
bus_probe_device+0x90/0xa0
device_add+0x663/0x880
usb_new_device.cold+0x141/0x3b5
hub_event+0x1132/0x1900
? page_counter_uncharge+0x4a/0x90
process_one_work+0x190/0x350
worker_thread+0x2d7/0x410
? __pfx_worker_thread+0x10/0x10
kthread+0xf9/0x240
? __pfx_kthread+0x10/0x10
? __pfx_kthread+0x10/0x10
ret_from_fork+0x1c1/0x1f0
? __pfx_kthread+0x10/0x10
ret_from_fork_asm+0x1a/0x30
</TASK>
---[ end trace 0000000000000000 ]---
rtw88_8822bu 1-2:1.0: failed to create RX work queue
rtw88_8822bu 1-2:1.0: failed to init USB RX
rtw88_8822bu 1-2:1.0: Firmware version 27.2.0, H2C version 13
rtw88_8822bu 1-2:1.0: probe with driver rtw88_8822bu failed with error -12
WQ_UNBOUND is not compatible with WQ_BH. Comment in enum wq_flags in
workqueue.h says:
/* BH wq only allows the following flags */
__WQ_BH_ALLOWS = WQ_BH | WQ_HIGHPRI | WQ_PERCPU,
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
---
Fortunately this commit is not in any released kernel yet.
---
drivers/net/wireless/realtek/rtw88/usb.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
index 22b9cbf2268a..bf6bedf7cb5f 100644
--- a/drivers/net/wireless/realtek/rtw88/usb.c
+++ b/drivers/net/wireless/realtek/rtw88/usb.c
@@ -972,8 +972,7 @@ static int rtw_usb_init_rx(struct rtw_dev *rtwdev)
struct sk_buff *rx_skb;
int i;
- rtwusb->rxwq = alloc_workqueue("rtw88_usb: rx wq", WQ_BH | WQ_UNBOUND,
- 0);
+ rtwusb->rxwq = alloc_workqueue("rtw88_usb: rx wq", WQ_BH, 0);
if (!rtwusb->rxwq) {
rtw_err(rtwdev, "failed to create RX work queue\n");
return -ENOMEM;
--
2.51.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* RE: [PATCH rtw-next] Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users"
2025-12-06 18:32 [PATCH rtw-next] Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users" Bitterblue Smith
@ 2025-12-08 0:40 ` Ping-Ke Shih
2025-12-08 1:42 ` Zenm Chen
2025-12-09 9:56 ` Marco Crivellari
2025-12-15 8:49 ` Ping-Ke Shih
1 sibling, 2 replies; 10+ messages in thread
From: Ping-Ke Shih @ 2025-12-08 0:40 UTC (permalink / raw)
To: Bitterblue Smith, linux-wireless@vger.kernel.org,
Marco Crivellari
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> This reverts commit 9c194fe4625db18f93d5abcfb7f7997557a0b29d.
>
> This commit breaks all USB wifi adapters supported by rtw88:
>
> usb 1-2: new high-speed USB device number 6 using xhci_hcd
> usb 1-2: New USB device found, idVendor=2357, idProduct=0138, bcdDevice= 2.10
> usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> usb 1-2: Product: 802.11ac NIC
> usb 1-2: Manufacturer: Realtek
> usb 1-2: SerialNumber: 123456
> ------------[ cut here ]------------
> WARNING: CPU: 3 PID: 152 at kernel/workqueue.c:5667 alloc_workqueue_noprof+0x676/0x770
>
> [...]
>
> Call Trace:
> <TASK>
> ? rtw_usb_probe+0x30e/0xa5c [rtw88_usb 4af3cb64eedafeecbfb08f80c1e9e2893e2ee7a6]
> rtw_usb_probe+0x3eb/0xa5c [rtw88_usb 4af3cb64eedafeecbfb08f80c1e9e2893e2ee7a6]
> usb_probe_interface+0xdd/0x2c0
> really_probe+0xdb/0x340
> ? pm_runtime_barrier+0x55/0x90
> ? __pfx___device_attach_driver+0x10/0x10
> __driver_probe_device+0x78/0x140
> driver_probe_device+0x1f/0xa0
> __device_attach_driver+0x89/0x110
> bus_for_each_drv+0x8f/0xe0
> __device_attach+0xb0/0x1c0
> bus_probe_device+0x90/0xa0
> device_add+0x663/0x880
> usb_set_configuration+0x5a5/0x870
> usb_generic_driver_probe+0x4a/0x70
> usb_probe_device+0x3d/0x140
> ? driver_sysfs_add+0x59/0xd0
> really_probe+0xdb/0x340
> ? pm_runtime_barrier+0x55/0x90
> ? __pfx___device_attach_driver+0x10/0x10
> __driver_probe_device+0x78/0x140
> driver_probe_device+0x1f/0xa0
> __device_attach_driver+0x89/0x110
> bus_for_each_drv+0x8f/0xe0
> __device_attach+0xb0/0x1c0
> bus_probe_device+0x90/0xa0
> device_add+0x663/0x880
> usb_new_device.cold+0x141/0x3b5
> hub_event+0x1132/0x1900
> ? page_counter_uncharge+0x4a/0x90
> process_one_work+0x190/0x350
> worker_thread+0x2d7/0x410
> ? __pfx_worker_thread+0x10/0x10
> kthread+0xf9/0x240
> ? __pfx_kthread+0x10/0x10
> ? __pfx_kthread+0x10/0x10
> ret_from_fork+0x1c1/0x1f0
> ? __pfx_kthread+0x10/0x10
> ret_from_fork_asm+0x1a/0x30
> </TASK>
> ---[ end trace 0000000000000000 ]---
> rtw88_8822bu 1-2:1.0: failed to create RX work queue
> rtw88_8822bu 1-2:1.0: failed to init USB RX
> rtw88_8822bu 1-2:1.0: Firmware version 27.2.0, H2C version 13
> rtw88_8822bu 1-2:1.0: probe with driver rtw88_8822bu failed with error -12
>
> WQ_UNBOUND is not compatible with WQ_BH. Comment in enum wq_flags in
> workqueue.h says:
>
> /* BH wq only allows the following flags */
> __WQ_BH_ALLOWS = WQ_BH | WQ_HIGHPRI | WQ_PERCPU,
Thanks for the info. I'll take this patch to rtw tree in -rc cycle.
>
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
> ---
> Fortunately this commit is not in any released kernel yet.
> ---
> drivers/net/wireless/realtek/rtw88/usb.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
> index 22b9cbf2268a..bf6bedf7cb5f 100644
> --- a/drivers/net/wireless/realtek/rtw88/usb.c
> +++ b/drivers/net/wireless/realtek/rtw88/usb.c
> @@ -972,8 +972,7 @@ static int rtw_usb_init_rx(struct rtw_dev *rtwdev)
> struct sk_buff *rx_skb;
> int i;
>
> - rtwusb->rxwq = alloc_workqueue("rtw88_usb: rx wq", WQ_BH | WQ_UNBOUND,
> - 0);
Hi Marco,
Will you send a patch to point out WQ_PERCPU explicitly?
> + rtwusb->rxwq = alloc_workqueue("rtw88_usb: rx wq", WQ_BH, 0);
> if (!rtwusb->rxwq) {
> rtw_err(rtwdev, "failed to create RX work queue\n");
> return -ENOMEM;
> --
> 2.51.1
^ permalink raw reply [flat|nested] 10+ messages in thread* RE: [PATCH rtw-next] Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users"
2025-12-08 0:40 ` Ping-Ke Shih
@ 2025-12-08 1:42 ` Zenm Chen
2025-12-08 2:11 ` Ping-Ke Shih
2025-12-09 9:56 ` Marco Crivellari
1 sibling, 1 reply; 10+ messages in thread
From: Zenm Chen @ 2025-12-08 1:42 UTC (permalink / raw)
To: pkshih; +Cc: linux-wireless, marco.crivellari, rtl8821cerfe2
Hi,
Last weekend I tried applying the v1 [1] to the kernel 6.17.9, but that one didn't work, either.
[1] https://patchwork.kernel.org/project/linux-wireless/patch/20251113160605.381777-3-marco.crivellari@suse.com/
[ 306.035759] usb 3-2: new high-speed USB device number 5 using ehci-pci
[ 306.162258] usb 3-2: New USB device found, idVendor=0bda, idProduct=b82c, bcdDevice= 2.10
[ 306.162272] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 306.162278] usb 3-2: Product: 802.11ac NIC
[ 306.162282] usb 3-2: Manufacturer: Realtek
[ 306.162286] usb 3-2: SerialNumber: 123456
[ 306.239143] ------------[ cut here ]------------
[ 306.239148] WARNING: CPU: 3 PID: 2886 at kernel/workqueue.c:5667 alloc_workqueue_noprof+0x676/0x770
[ 306.239157] Modules linked in: rtw88_8822bu(OE+) rtw88_8822b(OE) rtw88_usb(OE) rtw88_core(OE) cmac ccm vfat fat rtw89_8852ce_git(OE) rtw89_8852c_git(OE) snd_hda_codec_atihdmi rtw89_pci_git(OE) snd_hda_codec_hdmi snd_hda_intel kvm_amd rtw89_core_git(OE) snd_hda_codec ccp mac80211 snd_hda_core kvm at24 snd_intel_dspcfg eeepc_wmi asus_wmi libarc4 snd_intel_sdw_acpi snd_hwdep sp5100_tco irqbypass platform_profile cfg80211 polyval_clmulni sparse_keymap wmi_bmof ghash_clmulni_intel snd_pcm aesni_intel i2c_piix4 snd_timer rfkill pcspkr acpi_cpufreq k10temp i2c_smbus snd soundcore joydev mousedev mac_hid it87 hwmon_vid i2c_dev sg crypto_user loop dm_mod nfnetlink ip_tables x_tables radeon drm_ttm_helper ttm video drm_exec i2c_algo_bit drm_suballoc_helper drm_display_helper wmi cec
[ 306.239242] CPU: 3 UID: 0 PID: 2886 Comm: (udev-worker) Tainted: G OE 6.17.9-arch1-1 #1 PREEMPT(full) 71adf6020e7d04ea315feaf360c679be0fb5cb04
[ 306.239247] Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
[ 306.239248] Hardware name: System manufacturer System Product Name/F2A85-M, BIOS 6508 07/11/2014
[ 306.239250] RIP: 0010:alloc_workqueue_noprof+0x676/0x770
[ 306.239254] Code: e7 e8 fe d6 ff ff 48 89 c3 48 3d 00 f0 ff ff 0f 87 64 ff ff ff 48 89 c7 e8 e7 7b ff ff 48 89 df e8 5f 8c ff ff e9 cf fd ff ff <0f> 0b eb 95 49 3b 44 24 08 0f 85 22 ff ff ff e9 bb fd ff ff 48 8b
[ 306.239256] RSP: 0018:ffffcf870411fa28 EFLAGS: 00010206
[ 306.239258] RAX: 0000000000000001 RBX: 0000000000000100 RCX: 0000000000000000
[ 306.239260] RDX: 0000000000000000 RSI: 0000000000000101 RDI: ffffffffc0cfaa7c
[ 306.239262] RBP: ffffcf870411fab8 R08: ffff8b6f0b785e03 R09: 0000000000000002
[ 306.239263] R10: ffff8b6f00055f90 R11: fffff607441a2bc0 R12: ffff8b6f3d650920
[ 306.239264] R13: ffff8b6f3d65a050 R14: 0000000000000101 R15: 0000000000000000
[ 306.239266] FS: 00007fdc08077880(0000) GS:ffff8b7089889000(0000) knlGS:0000000000000000
[ 306.239268] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 306.239269] CR2: 000055621dbd5668 CR3: 0000000104db9000 CR4: 00000000000406f0
[ 306.239271] Call Trace:
[ 306.239274] <TASK>
[ 306.239280] ? rtw_usb_probe+0x30e/0xa5c [rtw88_usb 05dbc23485d8043e256d7ec95726de5e78824a02]
[ 306.239287] rtw_usb_probe+0x3eb/0xa5c [rtw88_usb 05dbc23485d8043e256d7ec95726de5e78824a02]
[ 306.239293] usb_probe_interface+0xe0/0x2c0
[ 306.239298] really_probe+0xde/0x340
[ 306.239302] ? pm_runtime_barrier+0x55/0x90
[ 306.239306] __driver_probe_device+0x78/0x140
[ 306.239309] driver_probe_device+0x1f/0xa0
[ 306.239312] ? __pfx___driver_attach+0x10/0x10
[ 306.239314] __driver_attach+0xcb/0x1e0
[ 306.239317] bus_for_each_dev+0x85/0xd0
[ 306.239321] bus_add_driver+0x10b/0x1f0
[ 306.239323] ? __pfx_rtw_8822bu_driver_init+0x10/0x10 [rtw88_8822bu f384b25320fa8a4c609f2ed21a5d2e35524ff4d6]
[ 306.239328] driver_register+0x75/0xe0
[ 306.239331] usb_register_driver+0x99/0x150
[ 306.239335] do_one_initcall+0x5b/0x300
[ 306.239340] do_init_module+0x62/0x250
[ 306.239343] ? init_module_from_file+0x8a/0xe0
[ 306.239345] init_module_from_file+0x8a/0xe0
[ 306.239349] idempotent_init_module+0x114/0x310
[ 306.239352] __x64_sys_finit_module+0x6d/0xd0
[ 306.239354] ? syscall_trace_enter+0x8d/0x1d0
[ 306.239357] do_syscall_64+0x81/0x970
[ 306.239361] ? do_syscall_64+0x81/0x970
[ 306.239363] ? do_user_addr_fault+0x21a/0x690
[ 306.239367] ? exc_page_fault+0x7e/0x1a0
[ 306.239370] entry_SYSCALL_64_after_hwframe+0x76/0x7e
[ 306.239373] RIP: 0033:0x7fdc0771872d
[ 306.239385] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d b3 f5 0e 00 f7 d8 64 89 01 48
[ 306.239387] RSP: 002b:00007ffc626c36c8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[ 306.239389] RAX: ffffffffffffffda RBX: 000055621dd98420 RCX: 00007fdc0771872d
[ 306.239391] RDX: 0000000000000000 RSI: 00007fdc080912f2 RDI: 000000000000001c
[ 306.239392] RBP: 00007ffc626c3760 R08: 0000000000000000 R09: 000055621de19b00
[ 306.239393] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fdc080912f2
[ 306.239395] R13: 0000000000020000 R14: 000055621dbd1030 R15: 000055621dd98420
[ 306.239397] </TASK>
[ 306.239399] ---[ end trace 0000000000000000 ]---
[ 306.239419] rtw88_8822bu 3-2:1.2: failed to create RX work queue
[ 306.239421] rtw88_8822bu 3-2:1.2: failed to init USB RX
[ 306.245240] rtw88_8822bu 3-2:1.2: Firmware version 30.20.0, H2C version 14
[ 306.245284] rtw88_8822bu 3-2:1.2: probe with driver rtw88_8822bu failed with error -12
[ 306.245323] usbcore: registered new interface driver rtw88_8822bu
^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH rtw-next] Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users"
2025-12-08 1:42 ` Zenm Chen
@ 2025-12-08 2:11 ` Ping-Ke Shih
2025-12-08 3:20 ` Zenm Chen
0 siblings, 1 reply; 10+ messages in thread
From: Ping-Ke Shih @ 2025-12-08 2:11 UTC (permalink / raw)
To: Zenm Chen
Cc: linux-wireless@vger.kernel.org, marco.crivellari@suse.com,
rtl8821cerfe2@gmail.com
Hi Zenm,
Zenm Chen <zenmchen@gmail.com>
> Hi,
>
> Last weekend I tried applying the v1 [1] to the kernel 6.17.9, but that one didn't work, either.
>
> [1]
> https://patchwork.kernel.org/project/linux-wireless/patch/20251113160605.381777-3-marco.crivellari@sus
> e.com/
>
> [ 306.035759] usb 3-2: new high-speed USB device number 5 using ehci-pci
> [ 306.162258] usb 3-2: New USB device found, idVendor=0bda, idProduct=b82c, bcdDevice= 2.10
> [ 306.162272] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> [ 306.162278] usb 3-2: Product: 802.11ac NIC
> [ 306.162282] usb 3-2: Manufacturer: Realtek
> [ 306.162286] usb 3-2: SerialNumber: 123456
> [ 306.239143] ------------[ cut here ]------------
> [ 306.239148] WARNING: CPU: 3 PID: 2886 at kernel/workqueue.c:5667 alloc_workqueue_noprof+0x676/0x770
I think this is because kernel 6.17.9 defines:
__WQ_BH_ALLOWS = WQ_BH | WQ_HIGHPRI,
and the latest is:
__WQ_BH_ALLOWS = WQ_BH | WQ_HIGHPRI | WQ_PERCPU,
^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH rtw-next] Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users"
2025-12-08 2:11 ` Ping-Ke Shih
@ 2025-12-08 3:20 ` Zenm Chen
2025-12-08 3:46 ` Ping-Ke Shih
0 siblings, 1 reply; 10+ messages in thread
From: Zenm Chen @ 2025-12-08 3:20 UTC (permalink / raw)
To: pkshih; +Cc: linux-wireless, marco.crivellari, rtl8821cerfe2, zenmchen
Hi Ping-Ke,
Ping-Ke Shih <pkshih@realtek.com> 於 2025年12月8日週一 上午10:11寫道:
>
> Hi Zenm,
>
> Zenm Chen <zenmchen@gmail.com>
> > Hi,
> >
> > Last weekend I tried applying the v1 [1] to the kernel 6.17.9, but that one didn't work, either.
> >
> > [1]
> > https://patchwork.kernel.org/project/linux-wireless/patch/20251113160605.381777-3-marco.crivellari@sus
> > e.com/
> >
> > [ 306.035759] usb 3-2: new high-speed USB device number 5 using ehci-pci
> > [ 306.162258] usb 3-2: New USB device found, idVendor=0bda, idProduct=b82c, bcdDevice= 2.10
> > [ 306.162272] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> > [ 306.162278] usb 3-2: Product: 802.11ac NIC
> > [ 306.162282] usb 3-2: Manufacturer: Realtek
> > [ 306.162286] usb 3-2: SerialNumber: 123456
> > [ 306.239143] ------------[ cut here ]------------
> > [ 306.239148] WARNING: CPU: 3 PID: 2886 at kernel/workqueue.c:5667 alloc_workqueue_noprof+0x676/0x770
>
> I think this is because kernel 6.17.9 defines:
>
> __WQ_BH_ALLOWS = WQ_BH | WQ_HIGHPRI,
>
> and the latest is:
>
> __WQ_BH_ALLOWS = WQ_BH | WQ_HIGHPRI | WQ_PERCPU,
>
Thank you for pointing out this. Have confirmed the patch v1 does work on
Arch Linux with kernel 6.18.0-1-mainline.
^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH rtw-next] Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users"
2025-12-08 3:20 ` Zenm Chen
@ 2025-12-08 3:46 ` Ping-Ke Shih
0 siblings, 0 replies; 10+ messages in thread
From: Ping-Ke Shih @ 2025-12-08 3:46 UTC (permalink / raw)
To: Zenm Chen
Cc: linux-wireless@vger.kernel.org, marco.crivellari@suse.com,
rtl8821cerfe2@gmail.com
Zenm Chen <zenmchen@gmail.com> wrote:
> Hi Ping-Ke,
>
> Ping-Ke Shih <pkshih@realtek.com> 於 2025年12月8日週一 上午10:11寫道:
> >
> > Hi Zenm,
> >
> > Zenm Chen <zenmchen@gmail.com>
> > > Hi,
> > >
> > > Last weekend I tried applying the v1 [1] to the kernel 6.17.9, but that one didn't work, either.
> > >
> > > [1]
> > >
> https://patchwork.kernel.org/project/linux-wireless/patch/20251113160605.381777-3-marco.crivellari@sus
> > > e.com/
> > >
> > > [ 306.035759] usb 3-2: new high-speed USB device number 5 using ehci-pci
> > > [ 306.162258] usb 3-2: New USB device found, idVendor=0bda, idProduct=b82c, bcdDevice= 2.10
> > > [ 306.162272] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> > > [ 306.162278] usb 3-2: Product: 802.11ac NIC
> > > [ 306.162282] usb 3-2: Manufacturer: Realtek
> > > [ 306.162286] usb 3-2: SerialNumber: 123456
> > > [ 306.239143] ------------[ cut here ]------------
> > > [ 306.239148] WARNING: CPU: 3 PID: 2886 at kernel/workqueue.c:5667 alloc_workqueue_noprof+0x676/0x770
> >
> > I think this is because kernel 6.17.9 defines:
> >
> > __WQ_BH_ALLOWS = WQ_BH | WQ_HIGHPRI,
> >
> > and the latest is:
> >
> > __WQ_BH_ALLOWS = WQ_BH | WQ_HIGHPRI | WQ_PERCPU,
> >
>
> Thank you for pointing out this. Have confirmed the patch v1 does work on
> Arch Linux with kernel 6.18.0-1-mainline.
Thanks for your confirmation. I'd re-open the patch as New in patchwork.
More, that means if you want to backport this driver on 6.17 or earlier, you
need some treatments for this change.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH rtw-next] Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users"
2025-12-08 0:40 ` Ping-Ke Shih
2025-12-08 1:42 ` Zenm Chen
@ 2025-12-09 9:56 ` Marco Crivellari
2025-12-10 0:17 ` Ping-Ke Shih
1 sibling, 1 reply; 10+ messages in thread
From: Marco Crivellari @ 2025-12-09 9:56 UTC (permalink / raw)
To: Ping-Ke Shih; +Cc: Bitterblue Smith, linux-wireless@vger.kernel.org
rtw89On Mon, Dec 8, 2025 at 1:40 AM Ping-Ke Shih <pkshih@realtek.com> wrote:
> Hi Marco,
>
> Will you send a patch to point out WQ_PERCPU explicitly?
>
> > + rtwusb->rxwq = alloc_workqueue("rtw88_usb: rx wq", WQ_BH, 0);
> > if (!rtwusb->rxwq) {
> > rtw_err(rtwdev, "failed to create RX work queue\n");
> > return -ENOMEM;
Hi,
The v1 is indeed correct, sorry for that: WQ_BH should be per-cpu
because it is executed in softirq context.
Should I send a patch prefixed with [BUG] in order to fix it or the v1
could be used and we're ok?
I noticed also in 6.18 "rtw89_usb_init_rx" is allocating a workqueue
and is missing WQ_PERCPU.
Many thanks!
--
Marco Crivellari
L3 Support Engineer, Technology & Product
^ permalink raw reply [flat|nested] 10+ messages in thread* RE: [PATCH rtw-next] Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users"
2025-12-09 9:56 ` Marco Crivellari
@ 2025-12-10 0:17 ` Ping-Ke Shih
2025-12-10 9:58 ` Marco Crivellari
0 siblings, 1 reply; 10+ messages in thread
From: Ping-Ke Shih @ 2025-12-10 0:17 UTC (permalink / raw)
To: Marco Crivellari; +Cc: Bitterblue Smith, linux-wireless@vger.kernel.org
Marco Crivellari <marco.crivellari@suse.com> wrote:
> Sent: Tuesday, December 9, 2025 5:57 PM
> rtw89On Mon, Dec 8, 2025 at 1:40 AM Ping-Ke Shih <pkshih@realtek.com> wrote:
> > Hi Marco,
> >
> > Will you send a patch to point out WQ_PERCPU explicitly?
> >
> > > + rtwusb->rxwq = alloc_workqueue("rtw88_usb: rx wq", WQ_BH, 0);
> > > if (!rtwusb->rxwq) {
> > > rtw_err(rtwdev, "failed to create RX work queue\n");
> > > return -ENOMEM;
>
> Hi,
>
> The v1 is indeed correct, sorry for that: WQ_BH should be per-cpu
> because it is executed in softirq context.
>
> Should I send a patch prefixed with [BUG] in order to fix it or the v1
> could be used and we're ok?
I think v1 is ok, so I re-open v1 [1], and plan to merge this in -next cycle.
[1] https://patchwork.kernel.org/project/linux-wireless/patch/20251113160605.381777-3-marco.crivellari@suse.com/
>
> I noticed also in 6.18 "rtw89_usb_init_rx" is allocating a workqueue
> and is missing WQ_PERCPU.
Please prepare another patch for this.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH rtw-next] Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users"
2025-12-06 18:32 [PATCH rtw-next] Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users" Bitterblue Smith
2025-12-08 0:40 ` Ping-Ke Shih
@ 2025-12-15 8:49 ` Ping-Ke Shih
1 sibling, 0 replies; 10+ messages in thread
From: Ping-Ke Shih @ 2025-12-15 8:49 UTC (permalink / raw)
To: Bitterblue Smith, linux-wireless@vger.kernel.org
Cc: Ping-Ke Shih, Marco Crivellari
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> This reverts commit 9c194fe4625db18f93d5abcfb7f7997557a0b29d.
>
> This commit breaks all USB wifi adapters supported by rtw88:
>
> usb 1-2: new high-speed USB device number 6 using xhci_hcd
> usb 1-2: New USB device found, idVendor=2357, idProduct=0138, bcdDevice= 2.10
> usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> usb 1-2: Product: 802.11ac NIC
> usb 1-2: Manufacturer: Realtek
> usb 1-2: SerialNumber: 123456
> ------------[ cut here ]------------
> WARNING: CPU: 3 PID: 152 at kernel/workqueue.c:5667 alloc_workqueue_noprof+0x676/0x770
>
> [...]
>
> Call Trace:
> <TASK>
> ? rtw_usb_probe+0x30e/0xa5c [rtw88_usb 4af3cb64eedafeecbfb08f80c1e9e2893e2ee7a6]
> rtw_usb_probe+0x3eb/0xa5c [rtw88_usb 4af3cb64eedafeecbfb08f80c1e9e2893e2ee7a6]
> usb_probe_interface+0xdd/0x2c0
> really_probe+0xdb/0x340
> ? pm_runtime_barrier+0x55/0x90
> ? __pfx___device_attach_driver+0x10/0x10
> __driver_probe_device+0x78/0x140
> driver_probe_device+0x1f/0xa0
> __device_attach_driver+0x89/0x110
> bus_for_each_drv+0x8f/0xe0
> __device_attach+0xb0/0x1c0
> bus_probe_device+0x90/0xa0
> device_add+0x663/0x880
> usb_set_configuration+0x5a5/0x870
> usb_generic_driver_probe+0x4a/0x70
> usb_probe_device+0x3d/0x140
> ? driver_sysfs_add+0x59/0xd0
> really_probe+0xdb/0x340
> ? pm_runtime_barrier+0x55/0x90
> ? __pfx___device_attach_driver+0x10/0x10
> __driver_probe_device+0x78/0x140
> driver_probe_device+0x1f/0xa0
> __device_attach_driver+0x89/0x110
> bus_for_each_drv+0x8f/0xe0
> __device_attach+0xb0/0x1c0
> bus_probe_device+0x90/0xa0
> device_add+0x663/0x880
> usb_new_device.cold+0x141/0x3b5
> hub_event+0x1132/0x1900
> ? page_counter_uncharge+0x4a/0x90
> process_one_work+0x190/0x350
> worker_thread+0x2d7/0x410
> ? __pfx_worker_thread+0x10/0x10
> kthread+0xf9/0x240
> ? __pfx_kthread+0x10/0x10
> ? __pfx_kthread+0x10/0x10
> ret_from_fork+0x1c1/0x1f0
> ? __pfx_kthread+0x10/0x10
> ret_from_fork_asm+0x1a/0x30
> </TASK>
> ---[ end trace 0000000000000000 ]---
> rtw88_8822bu 1-2:1.0: failed to create RX work queue
> rtw88_8822bu 1-2:1.0: failed to init USB RX
> rtw88_8822bu 1-2:1.0: Firmware version 27.2.0, H2C version 13
> rtw88_8822bu 1-2:1.0: probe with driver rtw88_8822bu failed with error -12
>
> WQ_UNBOUND is not compatible with WQ_BH. Comment in enum wq_flags in
> workqueue.h says:
>
> /* BH wq only allows the following flags */
> __WQ_BH_ALLOWS = WQ_BH | WQ_HIGHPRI | WQ_PERCPU,
>
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
> Acked-by: Ping-Ke Shih <pkshih@realtek.com>
1 patch(es) applied to rtw branch of rtw.git, thanks.
0ff5e81e1518 Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users"
---
https://github.com/pkshih/rtw.git
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2025-12-15 8:49 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-06 18:32 [PATCH rtw-next] Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users" Bitterblue Smith
2025-12-08 0:40 ` Ping-Ke Shih
2025-12-08 1:42 ` Zenm Chen
2025-12-08 2:11 ` Ping-Ke Shih
2025-12-08 3:20 ` Zenm Chen
2025-12-08 3:46 ` Ping-Ke Shih
2025-12-09 9:56 ` Marco Crivellari
2025-12-10 0:17 ` Ping-Ke Shih
2025-12-10 9:58 ` Marco Crivellari
2025-12-15 8:49 ` Ping-Ke Shih
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox