Re: lockdep warning in urb.c:363 usb_submit_urb

From: Alan Stern
Date: Tue Mar 24 2020 - 15:22:27 EST


On Tue, 24 Mar 2020, Qais Yousef wrote:

> On 03/24/20 11:56, Alan Stern wrote:

> > This certainly reinforces the initial impression that the cause of the
> > warnings is a bug in the platform code. You should ask the appropriate
> > maintainer.
>
> The device-tree compatible node returns "generic-ohci".
> drivers/usb/host/ohci-platform.c returns you as the maintainer :-)

I'm the maintainer of the driver for the device. But the device
structure itself (the one named 7ffb0000.ohci) gets created by
device-tree -- that's what I was referring to.

Here's the first error message:

usb usb2: runtime PM trying to activate child device usb2 but parent (7ffb0000.ohci) is not active

The runtime PM status of 7ffb0000.ohci is set in ohci_platform_probe(),
which does:

pm_runtime_set_active(&dev->dev);

The runtime PM status can change, and there aren't any debugging
statements in ohci_platform_suspend() or ohci_platform_resume() (or
ohci_suspend()/ohci_resume() in ohci-hcd.c, for that matter). Maybe
you can add some so we can see if anything strange is going on.

Any maybe you can find out exactly where that error message is coming
from by calling dump_stack() immediately after the dev_err() line
(approximately line 1198 in drivers/base/power/runtime.c).

(Also, you might want to turn off rcutorture. It adds a lot of
messages to the system log that are irrelevant for our purposes.)

Alan Stern