libata/sff: Use ops->bmdma_stop instead of ata_bmdma_stop()
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 1 Dec 2009 14:36:28 +0000 (14:36 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 9 Dec 2009 06:09:27 +0000 (17:09 +1100)
In libata-sff, ata_sff_post_internal_cmd() directly calls ata_bmdma_stop()
instead of ap->ops->bmdma_stop(). This can be a problem for controllers
that use their own bmdma_stop for which the generic sff one isn't suitable

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/libata-sff.c

index bbbb1fab17557cea8c169a9e7820c9e49d0697a7..51eb1e298601e133b5d4e967845f961f593d20d3 100644 (file)
@@ -2384,7 +2384,7 @@ void ata_sff_post_internal_cmd(struct ata_queued_cmd *qc)
        ap->hsm_task_state = HSM_ST_IDLE;
 
        if (ap->ioaddr.bmdma_addr)
-               ata_bmdma_stop(qc);
+               ap->ops->bmdma_stop(qc);
 
        spin_unlock_irqrestore(ap->lock, flags);
 }