[PATCH] libata irq-pio: misc fixes

- 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>
This commit is contained in:
Albert Lee 2005-11-01 19:19:01 +08:00 committed by Jeff Garzik
parent c7c6e9494c
commit 467b16d4be
1 changed files with 6 additions and 3 deletions

View 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)