[PATCH] libata: ATA_FLAG_IN_EH is not used, kill it
authorTejun Heo <htejun@gmail.com>
Sun, 2 Apr 2006 09:51:52 +0000 (18:51 +0900)
committerJeff Garzik <jeff@garzik.org>
Sun, 2 Apr 2006 14:09:19 +0000 (10:09 -0400)
Kill unused flag ATA_FLAG_IN_EH.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/scsi/libata-scsi.c
include/linux/libata.h

index c1a4b29..bcbf71e 100644 (file)
@@ -779,20 +779,15 @@ enum scsi_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd)
 
 int ata_scsi_error(struct Scsi_Host *host)
 {
-       struct ata_port *ap;
-       unsigned long flags;
+       struct ata_port *ap = (struct ata_port *)&host->hostdata[0];
 
        DPRINTK("ENTER\n");
 
-       ap = (struct ata_port *) &host->hostdata[0];
+       /* synchronize with IRQ handler and port task */
+       spin_unlock_wait(&ap->host_set->lock);
+       ata_port_flush_task(ap);
 
-       spin_lock_irqsave(&ap->host_set->lock, flags);
-       WARN_ON(ap->flags & ATA_FLAG_IN_EH);
-       ap->flags |= ATA_FLAG_IN_EH;
        WARN_ON(ata_qc_from_tag(ap, ap->active_tag) == NULL);
-       spin_unlock_irqrestore(&ap->host_set->lock, flags);
-
-       ata_port_flush_task(ap);
 
        ap->ops->eng_timeout(ap);
 
@@ -800,10 +795,6 @@ int ata_scsi_error(struct Scsi_Host *host)
 
        scsi_eh_flush_done_q(&ap->eh_done_q);
 
-       spin_lock_irqsave(&ap->host_set->lock, flags);
-       ap->flags &= ~ATA_FLAG_IN_EH;
-       spin_unlock_irqrestore(&ap->host_set->lock, flags);
-
        DPRINTK("EXIT\n");
        return 0;
 }
index a4a1e63..e20b0bf 100644 (file)
@@ -152,7 +152,6 @@ enum {
        ATA_FLAG_IRQ_MASK       = (1 << 14), /* Mask IRQ in PIO xfers */
 
        ATA_FLAG_FLUSH_PORT_TASK = (1 << 15), /* Flush port task */
-       ATA_FLAG_IN_EH          = (1 << 16), /* EH in progress */
 
        ATA_QCFLAG_ACTIVE       = (1 << 1), /* cmd not yet ack'd to scsi lyer */
        ATA_QCFLAG_SG           = (1 << 3), /* have s/g table? */