[PATCH] wifi: ath6kl: fix invalid workqueue flags in ath6kl_usb_create()

1 view
Skip to first unread message

wuyankun

unread,
Jun 10, 2026, 6:02:33 AM (yesterday) Jun 10
to linux-w...@vger.kernel.org, jeff.j...@oss.qualcomm.com, jo...@kernel.org, ke...@kernel.org, wuya...@uniontech.com, sumanth...@yahoo.com, linux-...@vger.kernel.org, syzkall...@googlegroups.com, syzbot+f80c62...@syzkaller.appspotmail.com, sta...@vger.kernel.org
ath6kl_usb_create() currently creates ath6kl_wq with flags set to 0:

alloc_workqueue("ath6kl_wq", 0, 0)

This triggers a runtime warning in __alloc_workqueue() because the queue is
created with neither WQ_PERCPU nor WQ_UNBOUND set:

workqueue: ath6kl_wq is using neither WQ_PERCPU or WQ_UNBOUND.
Setting WQ_PERCPU.

Set WQ_PERCPU explicitly to match the actual execution model and remove the
warning during device probe. No functional change intended.

Fixes: 62ebaf2f9261 ("ath6kl: avoid flush_scheduled_work() usage")
Reported-by: syzbot+f80c62...@syzkaller.appspotmail.com
Link: https://lore.kernel.org/all/6a289c01.39669fc...@google.com/T/
Cc: sta...@vger.kernel.org
Signed-off-by: wuyankun <wuya...@uniontech.com>
---
drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
index 79c18f5ee02b..945984c3dbe6 100644
--- a/drivers/net/wireless/ath/ath6kl/usb.c
+++ b/drivers/net/wireless/ath/ath6kl/usb.c
@@ -636,7 +636,7 @@ static struct ath6kl_usb *ath6kl_usb_create(struct usb_interface *interface)
ar_usb = kzalloc_obj(struct ath6kl_usb);
if (ar_usb == NULL)
return NULL;
- ar_usb->wq = alloc_workqueue("ath6kl_wq", 0, 0);
+ ar_usb->wq = alloc_workqueue("ath6kl_wq", WQ_PERCPU, 0);
if (!ar_usb->wq) {
kfree(ar_usb);
return NULL;
--
2.20.1

Tetsuo Handa

unread,
Jun 10, 2026, 7:01:49 AM (yesterday) Jun 10
to wuyankun, linux-w...@vger.kernel.org, jeff.j...@oss.qualcomm.com, jo...@kernel.org, ke...@kernel.org, sumanth...@yahoo.com, linux-...@vger.kernel.org, syzkall...@googlegroups.com, syzbot+f80c62...@syzkaller.appspotmail.com, sta...@vger.kernel.org
On 2026/06/10 18:22, wuyankun wrote:
> ath6kl_usb_create() currently creates ath6kl_wq with flags set to 0:
>
> alloc_workqueue("ath6kl_wq", 0, 0)
>
> This triggers a runtime warning in __alloc_workqueue() because the queue is
> created with neither WQ_PERCPU nor WQ_UNBOUND set:
>
> workqueue: ath6kl_wq is using neither WQ_PERCPU or WQ_UNBOUND.
> Setting WQ_PERCPU.
>
> Set WQ_PERCPU explicitly to match the actual execution model and remove the
> warning during device probe. No functional change intended.
>
> Fixes: 62ebaf2f9261 ("ath6kl: avoid flush_scheduled_work() usage")

Please use

Fixes: 21c05ca88a54 ("workqueue: Add warnings and ensure one among WQ_PERCPU or WQ_UNBOUND is present")

for this problem because this problem is caused by

WQ subsystem is about to start requiring WQ_PERCPU unless WQ_UNBOUND,
without updating all in-tree users before start emitting WARNING: message

. Also, you don't need to send to stable, but please try to send to linux.git before
7.1-final is released (because this fix should be applied before 21c05ca88a54 is
applied in order to avoid flooding of WARNING: messages).

wuyankun

unread,
Jun 10, 2026, 9:56:21 PM (11 hours ago) Jun 10
to penguin...@i-love.sakura.ne.jp, jeff.j...@oss.qualcomm.com, jo...@kernel.org, ke...@kernel.org, linux-...@vger.kernel.org, linux-w...@vger.kernel.org, sumanth...@yahoo.com, syzbot+f80c62...@syzkaller.appspotmail.com, syzkall...@googlegroups.com, wuya...@uniontech.com
ath6kl_usb_create() currently creates ath6kl_wq with flags set to 0:

alloc_workqueue("ath6kl_wq", 0, 0)

This triggers a runtime warning in __alloc_workqueue() because the queue is
created with neither WQ_PERCPU nor WQ_UNBOUND set:

workqueue: ath6kl_wq is using neither WQ_PERCPU or WQ_UNBOUND.
Setting WQ_PERCPU.

Set WQ_PERCPU explicitly to match the actual execution model and remove the
warning during device probe. No functional change intended.

Fixes: 21c05ca88a54 ("workqueue: Add warnings and ensure one among WQ_PERCPU or WQ_UNBOUND is present")
Signed-off-by: wuyankun <wuya...@uniontech.com>
---
drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
index 79c18f5ee02b..945984c3dbe6 100644
--- a/drivers/net/wireless/ath/ath6kl/usb.c
+++ b/drivers/net/wireless/ath/ath6kl/usb.c
@@ -636,7 +636,7 @@ static struct ath6kl_usb *ath6kl_usb_create(struct usb_interface *interface)
ar_usb = kzalloc_obj(struct ath6kl_usb);
if (ar_usb == NULL)
return NULL;
- ar_usb->wq = alloc_workqueue("ath6kl_wq", 0, 0);
+ ar_usb->wq = alloc_workqueue("ath6kl_wq", WQ_PERCPU, 0);
if (!ar_usb->wq) {
kfree(ar_usb);
return NULL;
--
2.20.1

Reply all
Reply to author
Forward
0 new messages