Re: lockdep warning in urb.c:363 usb_submit_urb

From: Qais Yousef
Date: Tue Mar 24 2020 - 13:22:42 EST


On 03/24/20 11:56, Alan Stern wrote:
> On Tue, 24 Mar 2020, Qais Yousef wrote:
>
> > On 03/24/20 09:52, Alan Stern wrote:
> > > On Tue, 24 Mar 2020, Qais Yousef wrote:
> > >
> > > > On 03/24/20 14:20, Oliver Neukum wrote:
> > > > > Am Dienstag, den 24.03.2020, 10:46 +0000 schrieb Qais Yousef:
> > > > > >
> > > > > > I should have stuck to what I know then. I misread the documentation. Hopefully
> > > > > > the attached looks better. I don't see the new debug you added emitted.
> > > > >
> > > > > That is odd. Please try
> > > > >
> > > > > echo "module usbcore +mfp" > /sys/kernel/debug/dynamic_debug/control
> > > > >
> > > > > with the attached improved patch.
> > > >
> > > > Hmm still no luck
> > > >
> > > >
> > > > # history
> > > > 0 echo "module usbcore +mfp" > /sys/kernel/debug/dynamic_debug/control
> > > > 1 swapoff -a
> > > > 2 echo suspend > /sys/power/disk
> > > > 3 echo disk > /sys/power/state
> > > > 4 dmesg > usb.dmesg
> > >
> > > What happens if you omit step 1 (the swapoff)?
> >
> > It seems to hibernate (suspend) successfully. If I omit that step I must setup
> > a wakealarm to trigger the wakeup, but that's it.
>
> You don't have any other wakeup sources? Like a power button?

Not sure if it's hooked correctly as a wakeup source. But as UK is now getting
lockedown, I don't think I'll be seeing the board for a while and serial
console is my only friend :-)

I can hard reboot remotely reliably though.

>
> > I attached the dmesg; I didn't reboot the system in between.
> >
> >
> > # history
> > 0 echo "module usbcore +mfp" > /sys/kernel/debug/dynamic_debug/control
> > 1 swapoff -a
> > 2 echo suspend > /sys/power/disk
> > 3 echo disk > /sys/power/state
> > 4 dmesg > usb.dmesg
> > 5 history
> > 6 grep URB /sys/kernel/debug/dynamic_debug/control
> > 7 grep "URB allocated" /sys/kernel/debug/dynamic_debug/control
> > 8 swapon -a
> > 9 echo +60 > /sys/class/rtc/rtc0/wakealarm
> > 10 echo disk > /sys/power/state
> > 11 dmesg > usb.dmesg
>
> 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 :-)

>
> However, an equally troubling question is why the usb2 bus never got
> suspended in the first place. To solve that, you may need to enable
> dynamic debugging in the Power Management core (i.e., "file
> drivers/base/power/* +p").

Thanks Alan. I'll run with extra debug and send back.

Cheers

--
Qais Yousef