From: Benjamin Herrenschmidt Date: Tue, 8 Nov 2005 00:21:05 +0000 (+1100) Subject: [PATCH] ppc64: Fix the lazy icache/dcache code for non-RAM pages X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=76c8e25b905f99be5ddbe999597ba7c2c33ec64b;p=openwrt%2Fstaging%2Fblogic.git [PATCH] ppc64: Fix the lazy icache/dcache code for non-RAM pages For some stupid reason I can't explain (brown paper bag is at hand), I removed the check pfn_valid() in the code that does the icache/dcache coherency on POWER4 and later. That causes us to eventually try to access non existing struct page when hashing in IO pages. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras --- diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 3d83c3b84f0e..22e474876133 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c @@ -507,6 +507,9 @@ unsigned int hash_page_do_lazy_icache(unsigned int pp, pte_t pte, int trap) { struct page *page; + if (!pfn_valid(pte_pfn(pte))) + return pp; + page = pte_page(pte); /* page is dirty */