Tejun Heo wrote:
Implement new EH scheduling from timeout. ata_scsi_timedout() also takes care of the race condition in which scsi_eh_schedule_qc() sets ATA_QCFLAG_EH_SCHEDULED but fails to acutally schedule EH for the qc because it loses to timeout. A timeout is HSM violation condition. New EH assumes that on a timeout the state of the controller and devices are unknown and dangerous. So, all active commands are aborted and the port is frozen. Note that commands which get aborted this way don't have its qc->err_mask set and its retries count will be compensated. Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>
This is not always true: With PCI IDE BMDMA devices, it is presumed that a DMA error will be handled by timeout. For this case, the controller is in a known state.
Jeff - : 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