浏览代码

[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 <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Benjamin Herrenschmidt 19 年之前
父节点
当前提交
76c8e25b90
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      arch/powerpc/mm/hash_utils_64.c

+ 3 - 0
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;
 	struct page *page;
 
 
+	if (!pfn_valid(pte_pfn(pte)))
+		return pp;
+
 	page = pte_page(pte);
 	page = pte_page(pte);
 
 
 	/* page is dirty */
 	/* page is dirty */