diff options
Diffstat (limited to 'drivers/scsi/isci/request.c')
-rw-r--r-- | drivers/scsi/isci/request.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/drivers/scsi/isci/request.c b/drivers/scsi/isci/request.c index 946caaeb66c6..b519373597a5 100644 --- a/drivers/scsi/isci/request.c +++ b/drivers/scsi/isci/request.c | |||
@@ -53,7 +53,6 @@ | |||
53 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 53 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
54 | */ | 54 | */ |
55 | 55 | ||
56 | #include <scsi/sas_ata.h> | ||
57 | #include "isci.h" | 56 | #include "isci.h" |
58 | #include "scic_remote_device.h" | 57 | #include "scic_remote_device.h" |
59 | #include "scic_io_request.h" | 58 | #include "scic_io_request.h" |
@@ -452,22 +451,11 @@ int isci_request_execute( | |||
452 | task->task_state_flags |= SAS_TASK_NEED_DEV_RESET; | 451 | task->task_state_flags |= SAS_TASK_NEED_DEV_RESET; |
453 | spin_unlock_irqrestore(&task->task_state_lock, flags); | 452 | spin_unlock_irqrestore(&task->task_state_lock, flags); |
454 | 453 | ||
455 | /* Cause this task to be scheduled in the SCSI error handler | 454 | /* Cause this task to be scheduled in the SCSI error |
456 | * thread. | 455 | * handler thread. |
457 | */ | 456 | */ |
458 | if (dev_is_sata(task->dev)) { | 457 | isci_execpath_callback(isci_host, task, |
459 | /* Since we are still in the submit path, and since | 458 | sas_task_abort); |
460 | * libsas takes the host lock on behalf of SATA | ||
461 | * devices before I/O starts, we need to unlock | ||
462 | * before we can put the task in the error path. | ||
463 | */ | ||
464 | raw_local_irq_save(flags); | ||
465 | spin_unlock(isci_host->shost->host_lock); | ||
466 | sas_task_abort(task); | ||
467 | spin_lock(isci_host->shost->host_lock); | ||
468 | raw_local_irq_restore(flags); | ||
469 | } else | ||
470 | sas_task_abort(task); | ||
471 | 459 | ||
472 | /* Change the status, since we are holding | 460 | /* Change the status, since we are holding |
473 | * the I/O until it is managed by the SCSI | 461 | * the I/O until it is managed by the SCSI |