On Thu, 20 Mar 2014, James Bottomley wrote: > diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c > index 771c16b..c52bfb2 100644 > --- a/drivers/scsi/scsi_error.c > +++ b/drivers/scsi/scsi_error.c > @@ -145,14 +145,14 @@ scmd_eh_abort_handler(struct work_struct *work) > "scmd %p retry " > "aborted command\n", scmd)); > scsi_queue_insert(scmd, SCSI_MLQUEUE_EH_RETRY); > - return; > + goto out; > } else { > SCSI_LOG_ERROR_RECOVERY(3, > scmd_printk(KERN_WARNING, scmd, > "scmd %p finish " > "aborted command\n", scmd)); > scsi_finish_command(scmd); > - return; > + goto out; > } > } else { > SCSI_LOG_ERROR_RECOVERY(3, > @@ -162,6 +162,8 @@ scmd_eh_abort_handler(struct work_struct *work) > } > } > > + scmd->eh_eflags &= ~SCSI_EH_ABORT_SCHEDULED; > + > if (!scsi_eh_scmd_add(scmd, 0)) { > SCSI_LOG_ERROR_RECOVERY(3, > scmd_printk(KERN_WARNING, scmd, > @@ -170,6 +172,10 @@ scmd_eh_abort_handler(struct work_struct *work) > scmd->result |= DID_TIME_OUT << 16; > scsi_finish_command(scmd); > } > + return; > + out: > + scmd->eh_eflags &= ~SCSI_EH_ABORT_SCHEDULED; > + return; > } > > /** Andreas, I think this patch will go a long way toward fixing your problem. Try it out. It won't eliminate the reset, but it should prevent all those error messages you've been getting and it should prevent your system from hanging. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html