Add ata_port_flush_task() to ata_exec_internal(). Signed-off-by: Albert Lee <albertcc@xxxxxxxxxx> --- It seems we also need ata_port_flush_task() in ata_exec_internal(). Patch against the upstream branch (fb21f0d0ec7e31cc814165e1a9d2662d9c9dd980). For your review, thanks, Albert --- upstream0/drivers/scsi/libata-core.c 2006-03-14 10:31:01.000000000 +0800 +++ exec_internal/drivers/scsi/libata-core.c 2006-03-14 10:55:24.000000000 +0800 @@ -962,6 +962,8 @@ ata_exec_internal(struct ata_port *ap, s spin_unlock_irqrestore(&ap->host_set->lock, flags); if (!wait_for_completion_timeout(&wait, ATA_TMOUT_INTERNAL)) { + ata_port_flush_task(ap); + spin_lock_irqsave(&ap->host_set->lock, flags); /* We're racing with irq here. If we lose, the - : send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html