Re: lockdep warning in urb.c:363 usb_submit_urb

From: Alan Stern
Date: Tue Mar 24 2020 - 11:56:11 EST


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?

> 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.

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").

Alan Stern