diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2010-05-12 19:20:04 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2010-05-12 19:20:04 -0400 |
| commit | 1540c84b5ed657ed71dce06915bba461e6b09574 (patch) | |
| tree | a449dc166800a1b0c429bb038bfc974e577eaf72 /drivers/ata/libata-eh.c | |
| parent | 1a3a403aa98b0ccabeb12abd7da90d33250ea36b (diff) | |
| parent | 4640b4e7d9919e9629fe8456df94f71658431ef9 (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/ata/libata-eh.c')
| -rw-r--r-- | drivers/ata/libata-eh.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index 9f6cfac0f2cc..228740f356c9 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c | |||
| @@ -879,6 +879,8 @@ static void ata_eh_set_pending(struct ata_port *ap, int fastdrain) | |||
| 879 | void ata_qc_schedule_eh(struct ata_queued_cmd *qc) | 879 | void ata_qc_schedule_eh(struct ata_queued_cmd *qc) |
| 880 | { | 880 | { |
| 881 | struct ata_port *ap = qc->ap; | 881 | struct ata_port *ap = qc->ap; |
| 882 | struct request_queue *q = qc->scsicmd->device->request_queue; | ||
| 883 | unsigned long flags; | ||
| 882 | 884 | ||
| 883 | WARN_ON(!ap->ops->error_handler); | 885 | WARN_ON(!ap->ops->error_handler); |
| 884 | 886 | ||
| @@ -890,7 +892,9 @@ void ata_qc_schedule_eh(struct ata_queued_cmd *qc) | |||
| 890 | * Note that ATA_QCFLAG_FAILED is unconditionally set after | 892 | * Note that ATA_QCFLAG_FAILED is unconditionally set after |
| 891 | * this function completes. | 893 | * this function completes. |
| 892 | */ | 894 | */ |
| 895 | spin_lock_irqsave(q->queue_lock, flags); | ||
| 893 | blk_abort_request(qc->scsicmd->request); | 896 | blk_abort_request(qc->scsicmd->request); |
| 897 | spin_unlock_irqrestore(q->queue_lock, flags); | ||
| 894 | } | 898 | } |
| 895 | 899 | ||
| 896 | /** | 900 | /** |
| @@ -1624,6 +1628,7 @@ void ata_eh_analyze_ncq_error(struct ata_link *link) | |||
| 1624 | } | 1628 | } |
| 1625 | 1629 | ||
| 1626 | /* okay, this error is ours */ | 1630 | /* okay, this error is ours */ |
| 1631 | memset(&tf, 0, sizeof(tf)); | ||
| 1627 | rc = ata_eh_read_log_10h(dev, &tag, &tf); | 1632 | rc = ata_eh_read_log_10h(dev, &tag, &tf); |
| 1628 | if (rc) { | 1633 | if (rc) { |
| 1629 | ata_link_printk(link, KERN_ERR, "failed to read log page 10h " | 1634 | ata_link_printk(link, KERN_ERR, "failed to read log page 10h " |
