Name

ata_eng_timeout — Handle timeout of queued command

Synopsis

void ata_eng_timeout (struct ata_port * ap);

Arguments

ap

Port on which timed-out command is active

Description

Some part of the kernel (currently, only the SCSI layer) has noticed that the active command on port ap has not completed after a specified length of time. Handle this condition by disabling DMA (if necessary) and completing transactions, with error if necessary.

This also handles the case of the “lost interrupt”, where for some reason (possibly hardware bug, possibly driver bug) an interrupt was not delivered to the driver, even though the transaction completed successfully.

LOCKING

Inherited from SCSI layer (none, can sleep)