Hi, I have an usb-storage enclosure that houses a normal desktop harddrive. I have been wondering why disks in that enclosure seemed to be having less errors than when connected to a normal IDE connector. The reason is: USB-storage is ignoring a hint that something is wrong. Probably my enclosure is also not completely following specs, but Linux is ignoring the hint as well.... On hitting a bad block, the disk reports error. The USB converter then reports "auto-sense-required", and this is carried out. However at this point, my USB enclosure returns all-zeroes. This is considered non-fatal by the kernel. I'm guessing not many people are testing these things with bad drives. So, I don't know wether or not other USB converters handle this situation more gracefully. As a patch, I've decided to set the sense key to "vendor specific" (9), and then no "additional sense" (0:0), if, and only if the device didn't return any valid sense info. The rest of the kernel then correctly interprets the situation as an IO error. Roger Wolff. --- linux-2.6.20.3.clean/drivers/usb/storage/transport.c 2007-03-13 19:27:08.000000000 +0100 +++ linux-2.6.20.3.kostunrix/drivers/usb/storage/transport.c 2007-08-16 16:47:00.000000000 +0200 @@ -629,6 +629,14 @@ /* let's clean up right away */ memcpy(srb->sense_buffer, us->sensebuf, US_SENSE_SIZE); + if (((srb->sense_buffer[2]&0xf) == 0) && + (srb->sense_buffer[12] == 0) && + (srb->sense_buffer[13] == 0)) { + /* Hmmmmm. The device requested sense, but then + declined to give us more info.... -- REW */ + srb->sense_buffer[2] |= 0x09; /* Vendor specific */ + } + srb->resid = old_resid; srb->request_buffer = old_request_buffer; srb->request_bufflen = old_request_bufflen; -- ** R.E.Wolff@xxxxxxxxxxxx ** http://www.BitWizard.nl/ ** +31-15-2600998 ** ** Delftechpark 26 2628 XH Delft, The Netherlands. KVK: 27239233 ** *-- BitWizard writes Linux device drivers for any device you may have! --* Q: It doesn't work. A: Look buddy, doesn't work is an ambiguous statement. Does it sit on the couch all day? Is it unemployed? Please be specific! Define 'it' and what it isn't doing. --------- Adapted from lxrbot FAQ - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html