sh: force dcache flush if dcache_dirty bit set.
authorPaul Mundt <lethal@linux-sh.org>
Tue, 13 Oct 2009 02:18:34 +0000 (11:18 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Tue, 13 Oct 2009 02:18:34 +0000 (11:18 +0900)
commit964f7e5a56814b32c727821de77d22bd7ef782bc
treef0413940c7e1dcb7a4dead52d0b04a0093ad39e9
parentaf67c3a9e68ee0a9e30ee8582577408adba0e299
sh: force dcache flush if dcache_dirty bit set.

This too follows the ARM change, given that the issue at hand applies to
all platforms that implement lazy D-cache writeback.

This fixes up the case when a page mapping disappears between the
flush_dcache_page() call (when PG_dcache_dirty is set for the page) and
the update_mmu_cache() call -- such as in the case of swap cache being
freed early. This kills off the mapping test in update_mmu_cache() and
switches to simply testing for PG_dcache_dirty.

Reported-by: Nitin Gupta <ngupta@vflare.org>
Reported-by: Hugh Dickins <hugh.dickins@tiscali.co.uk>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/mm/cache.c