2004-04-01 04:32:02

by David Gibson

[permalink] [raw]
Subject: Bugfix for PPC64 hugepage support

Linus, please apply.

Due to a misunderstanding of pmd_offset() the PPC64 hugepage code could
end up looking at bogus pages as if they were PMD pages.

Index: working-2.6/arch/ppc64/mm/hugetlbpage.c
===================================================================
--- working-2.6.orig/arch/ppc64/mm/hugetlbpage.c 2004-03-09 10:50:44.000000000 +1100
+++ working-2.6/arch/ppc64/mm/hugetlbpage.c 2004-04-01 12:53:54.920618632 +1000
@@ -190,6 +190,9 @@
BUG_ON(!in_hugepage_area(mm->context, addr));

pgd = pgd_offset(mm, addr);
+ if (pgd_none(*pgd))
+ return NULL;
+
pmd = pmd_offset(pgd, addr);

/* We shouldn't find a (normal) PTE page pointer here */


--
David Gibson | For every complex problem there is a
david AT gibson.dropbear.id.au | solution which is simple, neat and
| wrong.
http://www.ozlabs.org/people/dgibson