sparc64: Fix D-cache flushing on swapin from SW devices.
authorDavid S. Miller <davem@davemloft.net>
Mon, 12 Oct 2009 10:20:57 +0000 (03:20 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 12 Oct 2009 10:20:57 +0000 (03:20 -0700)
Thanks to tip form ARM folks and Russell King.

If flush_dcache_page() occurs on a swapin it will have a mapping
and we'll try to defer the flush by setting the dirty bit.

But when it hits update_dcache_page() we won't flush because the
page won't have a mapping any more.  So remove the mapping
requirement in flush_dcache().

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/mm/init_64.c

index a70a5e1904d9d556e43fcd893b83752856d0cd3e..1886d37d411b2e129c9b711ca381d7856daead4f 100644 (file)
@@ -265,7 +265,7 @@ static void flush_dcache(unsigned long pfn)
        struct page *page;
 
        page = pfn_to_page(pfn);
-       if (page && page_mapping(page)) {
+       if (page) {
                unsigned long pg_flags;
 
                pg_flags = page->flags;