[syzbot] [usb?] WARNING in wdm_rxwork/usb_submit_urb (2)

13 views
Skip to first unread message

syzbot

unread,
Feb 12, 2024, 1:51:28 PMFeb 12
to gre...@linuxfoundation.org, linux-...@vger.kernel.org, linu...@vger.kernel.org, syzkall...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 841c35169323 Linux 6.8-rc4
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=108afb04180000
kernel config: https://syzkaller.appspot.com/x/.config?x=1d7c92dd8d5c7a1e
dashboard link: https://syzkaller.appspot.com/bug?extid=c6a1953c27ace6cc34e5
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/38e234de95d9/disk-841c3516.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/b6bebb81917b/vmlinux-841c3516.xz
kernel image: https://storage.googleapis.com/syzbot-assets/3b5bf5ac63c3/bzImage-841c3516.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+c6a195...@syzkaller.appspotmail.com

------------[ cut here ]------------
URB ffff88802d18b550 submitted while active
WARNING: CPU: 1 PID: 16572 at drivers/usb/core/urb.c:379 usb_submit_urb+0x1039/0x18c0 drivers/usb/core/urb.c:379
Modules linked in:
CPU: 1 PID: 16572 Comm: kworker/1:0 Not tainted 6.8.0-rc4-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/25/2024
Workqueue: events wdm_rxwork
RIP: 0010:usb_submit_urb+0x1039/0x18c0 drivers/usb/core/urb.c:379
Code: 00 eb 66 e8 59 f7 8e fa e9 79 f0 ff ff e8 4f f7 8e fa c6 05 25 9f 6b 08 01 90 48 c7 c7 c0 ae 4a 8c 4c 89 ee e8 f8 01 53 fa 90 <0f> 0b 90 90 e9 40 f0 ff ff e8 29 f7 8e fa eb 12 e8 22 f7 8e fa 41
RSP: 0018:ffffc90004b4fb20 EFLAGS: 00010246
RAX: e7c54bd420f7c300 RBX: 0000000000000cc0 RCX: ffff888039421dc0
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffff88802d18b558 R08: ffffffff81577992 R09: 1ffff92000969eb8
R10: dffffc0000000000 R11: fffff52000969eb9 R12: 1ffff11005523912
R13: ffff88802d18b550 R14: dffffc0000000000 R15: ffff88802a91c828
FS: 0000000000000000(0000) GS:ffff8880b9500000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000555555d4f938 CR3: 000000000df32000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
wdm_rxwork+0x116/0x1f0 drivers/usb/class/cdc-wdm.c:989
process_one_work kernel/workqueue.c:2633 [inline]
process_scheduled_works+0x913/0x1420 kernel/workqueue.c:2706
worker_thread+0xa5f/0x1000 kernel/workqueue.c:2787
kthread+0x2ef/0x390 kernel/kthread.c:388
ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1b/0x30 arch/x86/entry/entry_64.S:242
</TASK>


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup

syzbot

unread,
Apr 25, 2024, 12:40:23 AM (2 days ago) Apr 25
to gre...@linuxfoundation.org, linux-...@vger.kernel.org, linu...@vger.kernel.org, syzkall...@googlegroups.com
syzbot has found a reproducer for the following issue on:

HEAD commit: a160e1202ca3 usb: dwc3: qcom: Add multiport suspend/resume..
git tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
console output: https://syzkaller.appspot.com/x/log.txt?x=12b37a9b180000
kernel config: https://syzkaller.appspot.com/x/.config?x=6fe204286ac73e15
dashboard link: https://syzkaller.appspot.com/bug?extid=c6a1953c27ace6cc34e5
compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1492bcef180000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=166f3d27180000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/17ff4370c4e0/disk-a160e120.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/7ef5dd31b4c4/vmlinux-a160e120.xz
kernel image: https://storage.googleapis.com/syzbot-assets/f0fdddbf376c/bzImage-a160e120.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+c6a195...@syzkaller.appspotmail.com

------------[ cut here ]------------
URB ffff8881022a5e00 submitted while active
WARNING: CPU: 1 PID: 35 at drivers/usb/core/urb.c:379 usb_submit_urb+0x14da/0x1730 drivers/usb/core/urb.c:379
Modules linked in:
CPU: 1 PID: 35 Comm: kworker/1:1 Not tainted 6.9.0-rc5-syzkaller-00104-ga160e1202ca3 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
Workqueue: events wdm_rxwork
RIP: 0010:usb_submit_urb+0x14da/0x1730 drivers/usb/core/urb.c:379
Code: fe eb cb bb fe ff ff ff e9 c1 f3 ff ff e8 1e ea 2c fd c6 05 81 4e 68 05 01 90 48 c7 c7 60 a3 30 87 48 89 de e8 a7 1a f3 fc 90 <0f> 0b 90 90 e9 b6 fe ff ff bb f8 ff ff ff e9 91 f3 ff ff 48 89 ef
RSP: 0018:ffffc90000257c20 EFLAGS: 00010286
RAX: 0000000000000000 RBX: ffff8881022a5e00 RCX: ffffffff811902c9
RDX: ffff888102efba00 RSI: ffffffff811902d6 RDI: 0000000000000001
RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000293
R13: ffff88810abe8090 R14: ffff88810abe8050 R15: ffffffff899ade98
FS: 0000000000000000(0000) GS:ffff8881f6500000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000564d6da62000 CR3: 0000000115de4000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
wdm_rxwork+0xf3/0x200 drivers/usb/class/cdc-wdm.c:989
process_one_work+0x9a9/0x1ac0 kernel/workqueue.c:3254
process_scheduled_works kernel/workqueue.c:3335 [inline]
worker_thread+0x6c8/0xf70 kernel/workqueue.c:3416
kthread+0x2c1/0x3a0 kernel/kthread.c:388
ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
</TASK>


---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.

Hillf Danton

unread,
Apr 25, 2024, 6:55:14 PM (2 days ago) Apr 25
to syzbot, linux-...@vger.kernel.org, syzkall...@googlegroups.com
On Wed, 24 Apr 2024 21:40:22 -0700
> syzbot has found a reproducer for the following issue on:
>
> HEAD commit: a160e1202ca3 usb: dwc3: qcom: Add multiport suspend/resume..
> git tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=166f3d27180000

#syz test https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing

--- x/drivers/usb/class/cdc-wdm.c
+++ y/drivers/usb/class/cdc-wdm.c
@@ -311,11 +311,12 @@ static void wdm_int_callback(struct urb
&& !test_bit(WDM_DISCONNECTING, &desc->flags)
&& !test_bit(WDM_SUSPENDING, &desc->flags)) {
rv = usb_submit_urb(desc->response, GFP_ATOMIC);
+ if (rv)
+ clear_bit(WDM_RESPONDING, &desc->flags);
dev_dbg(&desc->intf->dev, "submit response URB %d\n", rv);
}
spin_unlock_irqrestore(&desc->iuspin, flags);
if (rv < 0) {
- clear_bit(WDM_RESPONDING, &desc->flags);
if (rv == -EPERM)
return;
if (rv == -ENOMEM) {
--

syzbot

unread,
Apr 25, 2024, 7:20:06 PM (2 days ago) Apr 25
to hda...@sina.com, linux-...@vger.kernel.org, syzkall...@googlegroups.com
Hello,

syzbot has tested the proposed patch but the reproducer is still triggering an issue:
INFO: rcu detected stall in corrupted

rcu: INFO: rcu_preempt detected expedited stalls on CPUs/tasks: {
0-....
} 2638 jiffies s: 1161 root: 0x0/.
rcu: blocking rcu_node structures (internal RCU debug):



Tested on:

commit: a160e120 usb: dwc3: qcom: Add multiport suspend/resume..
console output: https://syzkaller.appspot.com/x/log.txt?x=1009807b180000
kernel config: https://syzkaller.appspot.com/x/.config?x=6fe204286ac73e15
dashboard link: https://syzkaller.appspot.com/bug?extid=c6a1953c27ace6cc34e5
compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
patch: https://syzkaller.appspot.com/x/patch.diff?x=1622eccf180000

Hillf Danton

unread,
Apr 26, 2024, 6:26:56 AM (20 hours ago) Apr 26
to syzbot, linux-...@vger.kernel.org, syzkall...@googlegroups.com
On Wed, 24 Apr 2024 21:40:22 -0700
> syzbot has found a reproducer for the following issue on:
>
> HEAD commit: a160e1202ca3 usb: dwc3: qcom: Add multiport suspend/resume..
> git tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=166f3d27180000

#syz test https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing

--- x/drivers/usb/class/cdc-wdm.c
+++ y/drivers/usb/class/cdc-wdm.c
@@ -262,6 +262,10 @@ static void wdm_int_callback(struct urb
case -ECONNRESET:
return; /* unplug */
case -EPIPE:
+ if (test_bit(WDM_INT_STALL, &desc->flags)) {
+ clear_bit(WDM_INT_STALL, &desc->flags);
+ return;
+ }
set_bit(WDM_INT_STALL, &desc->flags);
dev_err(&desc->intf->dev, "Stall on int endpoint\n");
goto sw; /* halt is cleared in work */
@@ -272,6 +276,9 @@ static void wdm_int_callback(struct urb
}
}

+ if (test_bit(WDM_INT_STALL, &desc->flags))
+ clear_bit(WDM_INT_STALL, &desc->flags);
+
if (urb->actual_length < sizeof(struct usb_cdc_notification)) {
dev_err(&desc->intf->dev, "wdm_int_callback - %d bytes\n",
urb->actual_length);
@@ -311,11 +318,12 @@ static void wdm_int_callback(struct urb

syzbot

unread,
Apr 26, 2024, 7:52:06 AM (18 hours ago) Apr 26
to hda...@sina.com, linux-...@vger.kernel.org, syzkall...@googlegroups.com
Hello,

syzbot has tested the proposed patch and the reproducer did not trigger any issue:

Reported-and-tested-by: syzbot+c6a195...@syzkaller.appspotmail.com

Tested on:

commit: a160e120 usb: dwc3: qcom: Add multiport suspend/resume..
console output: https://syzkaller.appspot.com/x/log.txt?x=1215128b180000
kernel config: https://syzkaller.appspot.com/x/.config?x=6fe204286ac73e15
dashboard link: https://syzkaller.appspot.com/bug?extid=c6a1953c27ace6cc34e5
compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
patch: https://syzkaller.appspot.com/x/patch.diff?x=1026cd6b180000

Note: testing is done by a robot and is best-effort only.
Reply all
Reply to author
Forward
0 new messages