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.
Jeff
--
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