Re: [PATCH] Call flush_dcache_page around PIO data transfers inlibata-aff.c

From: Sebastian Andrzej Siewior
Date: Wed Mar 03 2010 - 03:24:55 EST


> drivers/ata/libata-sff.c | 6 ++++++
> 1 files changed, 6 insertions(+), 0 deletions(-)
>
>diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
>index 741065c..3d3c854 100644
>--- a/drivers/ata/libata-sff.c
>+++ b/drivers/ata/libata-sff.c
>@@ -893,6 +896,9 @@ static void ata_pio_sector(struct ata_queued_cmd *qc)
> do_write);
> }
>
>+ if (!do_write)
>+ flush_dcache_page(page);
>+
> qc->curbytes += qc->sect_size;
> qc->cursg_ofs += qc->sect_size;

That part got merged and it leads to a BUG if CONFIG_DEBUG_VM is
enabled. My mips box and arm use page_mapping() in flush_dcache_page()
which has VM_BUG_ON(PageSlab(page)) in it.

Any comments on that?

Sebastian
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/