diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-06-12 05:04:37 +0200 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-06-12 05:04:37 +0200 |
commit | fec69a97489f961026e24536dbb7b86ac663948c (patch) | |
tree | 869713470d81ebc261598489a2711960336c7c37 /drivers/scsi/sata_mv.c | |
parent | [PATCH] libata: add missing ->data_xfer for pdc_adma (diff) | |
parent | [PATCH] sata_mv: grab host lock inside eng_timeout (diff) | |
download | linux-fec69a97489f961026e24536dbb7b86ac663948c.tar.xz linux-fec69a97489f961026e24536dbb7b86ac663948c.zip |
Merge branch 'upstream-fixes' into upstream
Conflicts:
drivers/scsi/sata_sil24.c
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 634bab17a6bb..4a71578df3c1 100644 --- a/drivers/scsi/sata_mv.c +++ b/drivers/scsi/sata_mv.c @@ -2040,6 +2040,7 @@ static void mv_phy_reset(struct ata_port *ap) static void mv_eng_timeout(struct ata_port *ap) { struct ata_queued_cmd *qc; + unsigned long flags; ata_port_printk(ap, KERN_ERR, "Entering mv_eng_timeout\n"); DPRINTK("All regs @ start of eng_timeout\n"); @@ -2051,8 +2052,10 @@ static void mv_eng_timeout(struct ata_port *ap) ap->host_set->mmio_base, ap, qc, qc->scsicmd, &qc->scsicmd->cmnd); + spin_lock_irqsave(&ap->host_set->lock, flags); mv_err_intr(ap, 0); mv_stop_and_reset(ap); + spin_unlock_irqrestore(&ap->host_set->lock, flags); WARN_ON(!(qc->flags & ATA_QCFLAG_ACTIVE)); if (qc->flags & ATA_QCFLAG_ACTIVE) { |