[PATCH] ppc64: Fix the lazy icache/dcache code for non-RAM pages

Benjamin Herrenschmidt benh at kernel.crashing.org
Tue Nov 8 11:21:05 EST 2005


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 <benh at kernel.crashing.org>

Index: linux-work/arch/powerpc/mm/hash_utils_64.c
===================================================================
--- linux-work.orig/arch/powerpc/mm/hash_utils_64.c	2005-11-08 11:00:17.000000000 +1100
+++ linux-work/arch/powerpc/mm/hash_utils_64.c	2005-11-08 11:06:39.000000000 +1100
@@ -514,6 +514,9 @@
 {
 	struct page *page;
 
+	if (!pfn_valid(pte_pfn(pte)))
+		return pp;
+
 	page = pte_page(pte);
 
 	/* page is dirty */





More information about the Linuxppc64-dev mailing list