From 5c679aebf42658bfbb8ae6b195f4081026aa9d3c Mon Sep 17 00:00:00 2001 From: Andi Kleen Date: Mon, 4 Feb 2008 16:48:09 +0100 Subject: [PATCH] --- yaml --- r: 82907 b: refs/heads/master c: c2f71ee2140b2a506735ff9fcb7e3b1dfaab8f2b h: refs/heads/master i: 82905: 2d46500f4d30b2dedc4311a0d6c1a64be51d093b 82903: 3c04d0635d09c1e1d482433c963c29c2dab73a4b v: v3 --- [refs] | 2 +- trunk/arch/x86/mm/pageattr.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 300678c74652..c60b51275d80 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 61e19a347ad4bcdda615ef77ef9c3e656e254f3d +refs/heads/master: c2f71ee2140b2a506735ff9fcb7e3b1dfaab8f2b diff --git a/trunk/arch/x86/mm/pageattr.c b/trunk/arch/x86/mm/pageattr.c index 9be684e61dcb..143fbafc948a 100644 --- a/trunk/arch/x86/mm/pageattr.c +++ b/trunk/arch/x86/mm/pageattr.c @@ -209,6 +209,11 @@ pte_t *lookup_address(unsigned long address, int *level) pud = pud_offset(pgd, address); if (pud_none(*pud)) return NULL; + + *level = PG_LEVEL_1G; + if (pud_large(*pud) || !pud_present(*pud)) + return (pte_t *)pud; + pmd = pmd_offset(pud, address); if (pmd_none(*pmd)) return NULL;