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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to