Re: [BUG] ide dma_timer_expiry, then hard lockup

Linas Vepstas
2007-06-18T20:46:19Z

On Mon, Jun 18, 2007 at 09:27:04PM +0100, Alan Cox wrote:
> > 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.

So what do you suggest? (I could buy an alternate ide controller,
and hope that goes away, or just buy a different hard drive. But
that's beside the point).

I can prepare a patch, but only with a lot of guidance. I can test
& debug, I'm highly motivated just right now ...

--linas