diff --git a/[refs] b/[refs] index 8516777ba768..9958f1bc3a54 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c7c6e9494cc9a4a5b1a2ca870ed4531ad2b98a83 +refs/heads/master: 467b16d4bebe8d251ca974eaa5da50b315206e9d diff --git a/trunk/drivers/scsi/libata-core.c b/trunk/drivers/scsi/libata-core.c index ce18de9705c4..15736e3313f0 100644 --- a/trunk/drivers/scsi/libata-core.c +++ b/trunk/drivers/scsi/libata-core.c @@ -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 @@ static void ata_pio_task(void *_data) 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 @@ static void ata_pio_task(void *_data) case HSM_ST_ERR: ata_pio_error(ap); return; + + default: + BUG(); + return; } if (timeout)