libata-sff: remove harmful BUG_ON from ata_bmdma_qc_issue
authorMark Lord <kernel@teksavvy.com>
Fri, 20 Aug 2010 14:13:16 +0000 (10:13 -0400)
committerJeff Garzik <jgarzik@redhat.com>
Wed, 25 Aug 2010 23:24:16 +0000 (19:24 -0400)
Remove harmful BUG_ON() from ata_bmdma_qc_issue(),
as it casts too wide of a net and breaks sata_mv.
It also crashes the kernel while doing the BUG_ON().

There's already a WARN_ON_ONCE() further down to catch
the case of POLLING for a BMDMA operation.

Signed-off-by: Mark Lord <mlord@pobox.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Cc: stable@kernel.org
drivers/ata/libata-sff.c

index 674c1436491f5e5e6df3a2334ee7f995775f7634..3b82d8ef76f0ffc81e6bb62e9d3ea19d1be57195 100644 (file)
@@ -2735,10 +2735,6 @@ unsigned int ata_bmdma_qc_issue(struct ata_queued_cmd *qc)
 {
        struct ata_port *ap = qc->ap;
 
-       /* see ata_dma_blacklisted() */
-       BUG_ON((ap->flags & ATA_FLAG_PIO_POLLING) &&
-              qc->tf.protocol == ATAPI_PROT_DMA);
-
        /* defer PIO handling to sff_qc_issue */
        if (!ata_is_dma(qc->tf.protocol))
                return ata_sff_qc_issue(qc);