diff options
Diffstat (limited to 'drivers/scsi/sata_mv.c')
| -rw-r--r-- | drivers/scsi/sata_mv.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/sata_mv.c b/drivers/scsi/sata_mv.c index 9b8bca1ac1f0..f16f92a6ec0f 100644 --- a/drivers/scsi/sata_mv.c +++ b/drivers/scsi/sata_mv.c | |||
| @@ -2035,6 +2035,7 @@ static void mv_phy_reset(struct ata_port *ap) | |||
| 2035 | static void mv_eng_timeout(struct ata_port *ap) | 2035 | static void mv_eng_timeout(struct ata_port *ap) |
| 2036 | { | 2036 | { |
| 2037 | struct ata_queued_cmd *qc; | 2037 | struct ata_queued_cmd *qc; |
| 2038 | unsigned long flags; | ||
| 2038 | 2039 | ||
| 2039 | printk(KERN_ERR "ata%u: Entering mv_eng_timeout\n",ap->id); | 2040 | printk(KERN_ERR "ata%u: Entering mv_eng_timeout\n",ap->id); |
| 2040 | DPRINTK("All regs @ start of eng_timeout\n"); | 2041 | DPRINTK("All regs @ start of eng_timeout\n"); |
| @@ -2046,8 +2047,10 @@ static void mv_eng_timeout(struct ata_port *ap) | |||
| 2046 | ap->host_set->mmio_base, ap, qc, qc->scsicmd, | 2047 | ap->host_set->mmio_base, ap, qc, qc->scsicmd, |
| 2047 | &qc->scsicmd->cmnd); | 2048 | &qc->scsicmd->cmnd); |
| 2048 | 2049 | ||
| 2050 | spin_lock_irqsave(&ap->host_set->lock, flags); | ||
| 2049 | mv_err_intr(ap, 0); | 2051 | mv_err_intr(ap, 0); |
| 2050 | mv_stop_and_reset(ap); | 2052 | mv_stop_and_reset(ap); |
| 2053 | spin_unlock_irqrestore(&ap->host_set->lock, flags); | ||
| 2051 | 2054 | ||
| 2052 | WARN_ON(!(qc->flags & ATA_QCFLAG_ACTIVE)); | 2055 | WARN_ON(!(qc->flags & ATA_QCFLAG_ACTIVE)); |
| 2053 | if (qc->flags & ATA_QCFLAG_ACTIVE) { | 2056 | if (qc->flags & ATA_QCFLAG_ACTIVE) { |
