Jeff Garzik wrote: > On 09/16/2009 07:56 AM, Tejun Heo wrote: >> Jeff, >> >> Commit 54c38444fad6a99b4b19512f8f0055d69115e69e triggers >> WARN_ON_ONCE(ap->pflags& ATA_PFLAG_FROZEN); in ata_qc_complete(). >>> From the commit history, it seems the change was to add DMA engine >> disable to sil_freeze(), right? I can't see why changing the orders >> would matter there. ata_port_abort() just changes the internal state >> of libata and doesn't affect low level driver or the hardware. > > ata_port_abort does more than change internal state: it calls > ata_qc_complete, which could trigger a taskfile register read. > > All SFF BMDMA controllers /must/ disable the DMA engine, before touching > the taskfile device register block. Ah.. right, the result tf filling. Well, then, I guess we'll have to move the WARN_ON_ONCE(). I'll post a patch soon. Thanks. -- tejun -- 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