Re: [syzbot] [usb?] INFO: task hung in usb_register_dev (2)

From: Alan Stern
Date: Mon Oct 07 2024 - 12:35:55 EST


On Mon, Oct 07, 2024 at 04:16:27PM +0200, Oliver Neukum wrote:
>
>
> On 07.10.24 13:05, syzbot wrote:
>
> > INFO: task kworker/1:0:25 blocked for more than 144 seconds.
> > Not tainted 6.12.0-rc1-next-20241003-syzkaller #0
> > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> > task:kworker/1:0 state:D stack:20416 pid:25 tgid:25 ppid:2 flags:0x00004000
> > Workqueue: pm pm_runtime_work
> > Call Trace:
> > <TASK>
> > context_switch kernel/sched/core.c:5315 [inline]
> > __schedule+0x1895/0x4b30 kernel/sched/core.c:6675
> > __schedule_loop kernel/sched/core.c:6752 [inline]
> > schedule+0x14b/0x320 kernel/sched/core.c:6767
> > usb_poison_urb+0x1bc/0x2e0 drivers/usb/core/urb.c:763
>
> This points to a bug in the HCD.
> usb_poison_urb() is guaranteed to make progress.
>
> > poison_urbs drivers/usb/class/cdc-wdm.c:342 [inline]
> > wdm_suspend+0x174/0x380 drivers/usb/class/cdc-wdm.c:1271
> > usb_suspend_interface drivers/usb/core/driver.c:1328 [inline]
> > usb_suspend_both+0x2a5/0x1140 drivers/usb/core/driver.c:1433
> > usb_runtime_suspend+0x59/0x100 drivers/usb/core/driver.c:1968
>
> What HC is used for these tests?

Although the test's console log doesn't say, the test apparently used
the raw gadget driver, which generally is run with dummy-hcd. That
driver has been having unexplained problems ever since commit
a7f3813e589f ("usb: gadget: dummy_hcd: Switch to hrtimer transfer
scheduler"), although I don't know if they are related to this issue.

You could try asking syzbot to run the test with a patch reverting that
commit.

Alan Stern