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

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@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);

On Wed, 10 Aug 2022 at 13:54, Janne Grunau j@jannau.net 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@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(+)
Reviewed-by: Simon Glass sjg@chromium.org
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);
-- 2.35.1

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@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?
Thanks, Janne

+Marek Vasut +Tom Rini
On Sun, 25 Sept 2022 at 23:07, Janne Grunau j@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@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?
Thanks, Janne

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

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@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@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 ?
Also, can you tell which device this is ?

On 11/3/22 23:23, 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@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@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 ?
Also, can you tell which device this is ?
Reading through the rest of the links, can you please just fill in details of the USB card reader for future reference (like lsusb -vvvn or similar). And then send V3 with my:
Reviewed-by: Marek Vasut marex@denx.de

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

On 11/4/22 08:35, Janne Grunau wrote:
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@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@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.
Ah, the MAINTAINERS entry is wrong, fix is out, thanks.
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
I'll see if I can get one of these for testing, thanks.
participants (3)
-
Janne Grunau
-
Marek Vasut
-
Simon Glass