[PATCH v2 1/1] usb: storage: continue probe on "Invalid device"

Janne Grunau j at jannau.net
Fri Nov 4 08:35:58 CET 2022


On 2022-11-03 23:23:52 +0100, Marek Vasut wrote:
> On 11/3/22 22:36, Janne Grunau wrote:
> > On 2022-09-28 04:20:52 -0600, Simon Glass wrote:
> > > +Marek Vasut
> > > +Tom Rini
> > > 
> > > On Sun, 25 Sept 2022 at 23:07, Janne Grunau <j at jannau.net> wrote:
> > > > 
> > > > On 2022-08-10 21:54:22 +0200, Janne Grunau wrote:
> > > > > Fixes a crash during probing of sd card readers without medium present.
> > > > > 
> > > > > Link: https://github.com/AsahiLinux/linux/issues/44
> > > > > Link: https://lists.denx.de/pipermail/u-boot/2022-July/489717.html
> > > > > Signed-off-by: Janne Grunau <j at jannau.net>
> > > > > ---
> > > > > Changes since v1:
> > > > >   - changed unconditiona return to "continue" as proposed by AKASHI Takahiro
> > > > > 
> > > > >   common/usb_storage.c | 1 +
> > > > >   1 file changed, 1 insertion(+)
> > > > > 
> > > > > diff --git a/common/usb_storage.c b/common/usb_storage.c
> > > > > index eaa31374ef73..f9204552a683 100644
> > > > > --- a/common/usb_storage.c
> > > > > +++ b/common/usb_storage.c
> > > > > @@ -239,6 +239,7 @@ static int usb_stor_probe_device(struct usb_device *udev)
> > > > >                        ret = device_unbind(dev);
> > > > >                        if (ret)
> > > > >                                return ret;
> > > > > +                     continue;
> > > > >                }
> > > > > 
> > > > >                ret = blk_probe_or_unbind(dev);
> > > > 
> > > > ping. Is there anything holding up merging this fix?
> > 
> > ping2
> > 
> > This fixes a 100% reproducible crash when an USB storage device with
> > "medium not ready" is connected.
> 
> Can you please CC me next time when submitting these kinds of USB fixes ?

sure, the cc list was the get_maintainers.pl output.

> Also, can you tell which device this is ?

I don't think the device matters but I'm seeing this problem with

Bus 002 Device 005: ID 0bda:0326 Realtek Semiconductor Corp. Card reader
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 bDeviceSubClass         0 bDeviceProtocol         
0 bMaxPacketSize0         9
  idVendor           0x0bda Realtek Semiconductor Corp.
  idProduct          0x0326 Card reader
  bcdDevice           11.24
  iManufacturer           1 Realtek
  iProduct                2 USB3.0 Card Reader
  iSerial                 3 201404081410
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x002c
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 CARD READER
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              800mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              5 Bulk-In, Bulk-Out, Interface
      Endpoint Descriptor:
	bLength                 7
	bDescriptorType         5
	bEndpointAddress     0x01  EP 1 OUT
	bmAttributes            2
	  Transfer Type            Bulk
	  Synch Type               None
	  Usage Type               Data
	wMaxPacketSize     0x0400  1x 1024 bytes
	bInterval               0
	bMaxBurst               7
      Endpoint Descriptor:
	bLength                 7
	bDescriptorType         5
	bEndpointAddress     0x82  EP 2 IN
	bmAttributes            2
	  Transfer Type            Bulk
	  Synch Type               None
	  Usage Type               Data
	wMaxPacketSize     0x0400  1x 1024 bytes
	bInterval               0
	bMaxBurst               7
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength       0x0016
  bNumDeviceCaps          2
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x0000f41e
      BESL Link Power Management (LPM) Supported
    BESL value     1024 us Deep BESL value    61440 us SuperSpeed USB 
Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x02
      Latency Tolerance Messages (LTM) Supported
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat        1023 micro seconds
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x001c
  (Bus Powered)
  U1 Enabled
  U2 Enabled
  Latency Tolerance Messaging (LTM) Enabled



More information about the U-Boot mailing list