]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
libata: don't flush dcache on slab pages
authorSebastian Andrzej Siewior <sebastian@breakpoint.cc>
Sun, 21 Mar 2010 21:52:23 +0000 (22:52 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 5 Jul 2010 18:21:56 +0000 (11:21 -0700)
commit 3842e835490cdf17013b30a788f6311bdcfd0571 upstream.

page_mapping() check this via VM_BUG_ON(PageSlab(page)) so we bug here
with the according debuging turned on.

Future TODO: replace this with a flush_dcache_page_for_pio() API

Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/ata/libata-sff.c

index e3877b6843c9ad4d16b469770b9c4595cdd0a086..472364889a71956ccddf3e0e4057ae4c4a4f6e12 100644 (file)
@@ -894,7 +894,7 @@ static void ata_pio_sector(struct ata_queued_cmd *qc)
                                       do_write);
        }
 
-       if (!do_write)
+       if (!do_write && !PageSlab(page))
                flush_dcache_page(page);
 
        qc->curbytes += qc->sect_size;