Re: Avoid I/O errors when issuing SCSI ioctls to JMicron USB/ATA bridge

From: Alexandre Oliva
Date: Sun Oct 19 2008 - 00:12:16 EST

On Oct 14, 2008, Phil Dibowitz <phil@xxxxxxxx> wrote:

> The patch looks generally good, but you've included every possible revision
> of the hardware. Can you please change your patch to include just the
> revision in question (0x0100) rather than the whole range (0x0000 - 0x9999)?

Here's the patch. Let's hope that's enough to cover any other
failing variants, past, present and future.

>> Here's the patch that implements the fix you suggested to avoid the
>> I/O errors that I was running into with my new USB enclosure with a
>> JMicron USB/ATA bridge, while issuing scsi-io USN or other such
>> queries used by Fedora's mkinitrd.

T: Bus=01 Lev=01 Prnt=01 Port=07 Cnt=04 Dev#= 5 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=152d ProdID=2329 Rev= 1.00
S: Manufacturer=JMicron
S: Product=USB to ATA/ATAPI Bridge
S: SerialNumber=DE5088854FFF
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

(patch applied and retested on a modified

--- linux-2.6/drivers/usb/storage/unusual_devs.h~ 2008-07-13 18:51:29.000000000 -0300
+++ linux-2.6/drivers/usb/storage/unusual_devs.h 2008-10-07 23:38:38.000000000 -0300
@@ -1694,6 +1694,15 @@

+/* Reported by Alexandre Oliva <oliva@xxxxxxxxxxxxxxxxx>
+ * JMicron responds to USN and several other SCSI ioctls with a
+ * residue that causes subsequent I/O requests to fail. */
+UNUSUAL_DEV( 0x152d, 0x2329, 0x0100, 0x0100,
+ "JMicron",
+ "USB to ATA/ATAPI Bridge",
/* Reported by Robert Schedel <r.schedel@xxxxxxxx>
* Note: this is a 'super top' device like the above 14cd/6600 device */
UNUSUAL_DEV( 0x1652, 0x6600, 0x0201, 0x0201,

Alexandre Oliva
Free Software Evangelist oliva@{,}
FSFLA Board Member ÂSÃ Libre! =>
Red Hat Compiler Engineer aoliva@{,}