> ide_dma_off_quietly and ide_dma_on commands. The logic implemented in > the old code is "stop DMA transfer but do not disable DMA in case of errors". The two layers don't line up 1:1. In the event of a timeout then libata layer calls the ->lost_interrupt() which if you inherit from bmdma checks controller status in the taskfiles to see if the command finished fine by the IRQ was lost before deciding an error situation occurs If we get an error we quiesce the channel entirely and then recover it. It would be useful I think if you posted the current code, and also to know if you see the same problem (lost IRQ etc) with ATAPI as well as ATA -- To unsubscribe from this list: 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