Re: [BUG] ide dma_timer_expiry, then hard lockup

Mark Lord
2007-06-19T15:38:51Z

Sergei Shtylyov wrote:
> Alan Cox wrote:
>
>>>>> I can prepare a patch, but only with a lot of guidance. I can test
>>>>> & debug, I'm highly motivated just right now ...
>
>>>> If you've got a nice repeatable problem please try using the libata
>>>> driver. That handles the error paths differently and doesn't try a FIFO
>>>> drain which might matter in this case I guess.
>
>>> FIFO drain for DMA commands?
>
>> Welcome to the old IDE layer which I am so glad I left behind 8)
>
>> ide_ata_error will try and do a PIO flush regardless of the command type
>> if DRQ_STAT is asserted. See ide_dma_intr -> ide_error -> ...
>
> Indeed... but the thing is we don't know what's asserted in this case
> -- remember, it's reading the status register that locks everything up...

Exactly. And IORDY shouldn't really apply there,
unless some nitwit standards person wrote it into a spec..

-ml