aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libsas/sas_scsi_host.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/libsas/sas_scsi_host.c')
-rw-r--r--drivers/scsi/libsas/sas_scsi_host.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
index 14b13196b22d..b672d10e2a90 100644
--- a/drivers/scsi/libsas/sas_scsi_host.c
+++ b/drivers/scsi/libsas/sas_scsi_host.c
@@ -1029,6 +1029,8 @@ int __sas_task_abort(struct sas_task *task)
1029void sas_task_abort(struct sas_task *task) 1029void sas_task_abort(struct sas_task *task)
1030{ 1030{
1031 struct scsi_cmnd *sc = task->uldd_task; 1031 struct scsi_cmnd *sc = task->uldd_task;
1032 struct request_queue *q = sc->device->request_queue;
1033 unsigned long flags;
1032 1034
1033 /* Escape for libsas internal commands */ 1035 /* Escape for libsas internal commands */
1034 if (!sc) { 1036 if (!sc) {
@@ -1043,7 +1045,9 @@ void sas_task_abort(struct sas_task *task)
1043 return; 1045 return;
1044 } 1046 }
1045 1047
1048 spin_lock_irqsave(q->queue_lock, flags);
1046 blk_abort_request(sc->request); 1049 blk_abort_request(sc->request);
1050 spin_unlock_irqrestore(q->queue_lock, flags);
1047 scsi_schedule_eh(sc->device->host); 1051 scsi_schedule_eh(sc->device->host);
1048} 1052}
1049 1053