public inbox for linux-wireless@vger.kernel.org
 help / color / mirror / Atom feed
* [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-10  0:17     ` Ping-Ke Shih
@ 2025-12-10  9:58       ` Marco Crivellari
  0 siblings, 0 replies; 10+ messages in thread
From: Marco Crivellari @ 2025-12-10  9:58 UTC (permalink / raw)
  To: Ping-Ke Shih; +Cc: Bitterblue Smith, linux-wireless@vger.kernel.org

Hi,

On Wed, Dec 10, 2025 at 1:17 AM Ping-Ke Shih <pkshih@realtek.com> wrote:
> 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/

Sounds good!

> Please prepare another patch for this.

Sure, I will!

Thank you!

-- 

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-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