Re: [BUG] ide dma_timer_expiry, then hard lockup

Alan Cox
2007-06-18T20:22:08Z

> ide_dma_timeout_retry() in ide-io.c
> prints the "hdc: DMA Timeout error" then calls
> HWIF(drive)->ide_dma_end(drive);
> which returns, and then calls
> hwif->INB(IDE_STATUS_REG) which is needed as an argument to ide_error()
>
> But this hangs! -- The INB never returns.
> Now: hwif->INB = ide_inb; in ide-iops.c

Yep and the I/O cycle never completes so the box hangs. This occurs if
the drive blows up and never switches IORDY to indicate completion. The
hpt will also do this sometimes if it gets addled by a confused drive,
while an intel one often won't.

Alan