On Fri, 16 Jan 2004, Mike Anderson wrote:
> Alan Stern [EMAIL PROTECTED] wrote:
> >
> > Seeing no sense key, usb-storage returns 0 indicating the command
> > succeeded. But scsi_finish_command() sees that valid sense data is
> > present and sets the driver_byte to DRIVER_SENSE.
> >
> > > SCSI error : <1 0 0 0> return code = 0x8000000
> > > Current sda: sense key No Sense
> >
> > This causes scsi_io_completion() to call scsi_end_request() with uptodate
> > = 0 and results in this error:
> >
> > > end_request: I/O error, dev sda, sector 32
> > > FAT: unable to read boot sector
> >
> > How should we handle this? Should we zero out sense_buffer[0] when
> > auto-sense shows sense key = NO_SENSE?
> >
>
> I would think the upper level driver should handle this. We decode
> RECOVERED_ERROR in sd. sd could just handle NO_SENSE the same with /
> without the print_sense. I noticed that st and osst under some
> circumstances look at the NO_SENSE case (the tape people will need to
> comment as this looks like a EOM workaround) so it would seem incorrect
> for the LLDD as a general policy to say it received no sense when it
> did.
Florian and Alexander, does this patch fix your problem? Mike, how does
it look to you?
Alan Stern
===== sd.c 1.59 vs edited =====
--- 1.59/drivers/scsi/sd.c Fri Oct 24 14:53:37 2003
+++ edited/drivers/scsi/sd.c Fri Jan 16 15:49:48 2004
@@ -730,6 +730,14 @@
* hard error.
*/
print_sense("sd", SCpnt);
+ /* FALLS THROUGH */
+
+ case NO_SENSE:
+ /*
+ * The low-level driver got the sense data but
+ * everything was all right. Don't treat this
+ * an an error.
+ */
SCpnt->result = 0;
SCpnt->sense_buffer[0] = 0x0;
good_sectors = this_count;
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel