On Sat, Jun 14, 2014 at 07:51:01AM -0700, James Bottomley wrote: > Upstream Commit: d555a2abf3481f81303d835046a5ec2c4fb3ca8e > > We unconditionally execute scsi_eh_get_sense() to make sure all failed > commands that should have sense attached, do. However, the routine forgets > that some commands, because of the way they fail, will not have any sense code > ... we should not bother them with a REQUEST_SENSE command. Fix this by > testing to see if we actually got a CHECK_CONDITION return and skip asking for > sense if we don't. > > Tested-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > Signed-off-by: James Bottomley <JBottomley@xxxxxxxxxxxxx> > > --- > > This actually fixes a bug in SCSI error handling (causing the eh to > issue a command while it is still pending at the HBA) which is causing > several other problems with miscellaneous drivers. Please backport as > far as it will go. Thanks, I'm also queuing this for the 3.11 kernel. Cheers, -- Luís > > diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c > index 771c16b..d020149 100644 > --- a/drivers/scsi/scsi_error.c > +++ b/drivers/scsi/scsi_error.c > @@ -1157,6 +1157,15 @@ int scsi_eh_get_sense(struct list_head *work_q, > __func__)); > break; > } > + if (status_byte(scmd->result) != CHECK_CONDITION) > + /* > + * don't request sense if there's no check condition > + * status because the error we're processing isn't one > + * that has a sense code (and some devices get > + * confused by sense requests out of the blue) > + */ > + continue; > + > SCSI_LOG_ERROR_RECOVERY(2, scmd_printk(KERN_INFO, scmd, > "%s: requesting sense\n", > current->comm)); > > > -- > To unsubscribe from this list: send the line "unsubscribe stable" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html