]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
[PATCH] libata irq-pio: misc fixes
authorAlbert Lee <albertcc@tw.ibm.com>
Tue, 1 Nov 2005 11:19:01 +0000 (19:19 +0800)
committerJeff Garzik <jgarzik@pobox.com>
Wed, 9 Nov 2005 06:22:19 +0000 (01:22 -0500)
   - ata_pio_block(): add ata_altstatus(ap) to prevent reading device status before it is valid
   - remove the unnecessary HSM_ST_IDLE state from ata_pio_task()
   - raise BUG() when unknown state is found in ata_pio_task()

Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
============
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/scsi/libata-core.c

index ce18de9705c4189a9322af541f46690dfc209ef6..15736e3313f0e28f7914c69e0db3d44dfb9dc14c 100644 (file)
@@ -3317,6 +3317,8 @@ static void ata_pio_block(struct ata_port *ap)
 
                ata_pio_sector(qc);
        }
+
+       ata_altstatus(ap); /* flush */
 }
 
 static void ata_pio_error(struct ata_port *ap)
@@ -3344,9 +3346,6 @@ fsm_start:
        qc_completed = 0;
 
        switch (ap->hsm_task_state) {
-       case HSM_ST_IDLE:
-               return;
-
        case HSM_ST:
                ata_pio_block(ap);
                break;
@@ -3364,6 +3363,10 @@ fsm_start:
        case HSM_ST_ERR:
                ata_pio_error(ap);
                return;
+
+       default:
+               BUG();
+               return;
        }
 
        if (timeout)