aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libsas/sas_ata.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2010-05-12 19:20:04 -0400
committerThomas Gleixner <tglx@linutronix.de>2010-05-12 19:20:04 -0400
commit1540c84b5ed657ed71dce06915bba461e6b09574 (patch)
treea449dc166800a1b0c429bb038bfc974e577eaf72 /drivers/scsi/libsas/sas_ata.c
parent1a3a403aa98b0ccabeb12abd7da90d33250ea36b (diff)
parent4640b4e7d9919e9629fe8456df94f71658431ef9 (diff)
Merge branch '2.6.33.4' into rt/2.6.33
Conflicts: Makefile Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/scsi/libsas/sas_ata.c')
-rw-r--r--drivers/scsi/libsas/sas_ata.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index e15501170698..816ab97eb16d 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -394,11 +394,15 @@ int sas_ata_init_host_and_port(struct domain_device *found_dev,
394void sas_ata_task_abort(struct sas_task *task) 394void sas_ata_task_abort(struct sas_task *task)
395{ 395{
396 struct ata_queued_cmd *qc = task->uldd_task; 396 struct ata_queued_cmd *qc = task->uldd_task;
397 struct request_queue *q = qc->scsicmd->device->request_queue;
397 struct completion *waiting; 398 struct completion *waiting;
399 unsigned long flags;
398 400
399 /* Bounce SCSI-initiated commands to the SCSI EH */ 401 /* Bounce SCSI-initiated commands to the SCSI EH */
400 if (qc->scsicmd) { 402 if (qc->scsicmd) {
403 spin_lock_irqsave(q->queue_lock, flags);
401 blk_abort_request(qc->scsicmd->request); 404 blk_abort_request(qc->scsicmd->request);
405 spin_unlock_irqrestore(q->queue_lock, flags);
402 scsi_schedule_eh(qc->scsicmd->device->host); 406 scsi_schedule_eh(qc->scsicmd->device->host);
403 return; 407 return;
404 } 408 }