diff options
Diffstat (limited to 'drivers/scsi/libsas')
-rw-r--r-- | drivers/scsi/libsas/sas_scsi_host.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c index 22672d54aa27..21bd24775980 100644 --- a/drivers/scsi/libsas/sas_scsi_host.c +++ b/drivers/scsi/libsas/sas_scsi_host.c | |||
@@ -542,6 +542,13 @@ enum scsi_eh_timer_return sas_scsi_timed_out(struct scsi_cmnd *cmd) | |||
542 | cmd, task); | 542 | cmd, task); |
543 | return EH_HANDLED; | 543 | return EH_HANDLED; |
544 | } | 544 | } |
545 | if (!(task->task_state_flags & SAS_TASK_AT_INITIATOR)) { | ||
546 | spin_unlock_irqrestore(&task->task_state_lock, flags); | ||
547 | SAS_DPRINTK("command 0x%p, task 0x%p, not at initiator: " | ||
548 | "EH_RESET_TIMER\n", | ||
549 | cmd, task); | ||
550 | return EH_RESET_TIMER; | ||
551 | } | ||
545 | task->task_state_flags |= SAS_TASK_STATE_ABORTED; | 552 | task->task_state_flags |= SAS_TASK_STATE_ABORTED; |
546 | spin_unlock_irqrestore(&task->task_state_lock, flags); | 553 | spin_unlock_irqrestore(&task->task_state_lock, flags); |
547 | 554 | ||