From 61e08453a19e35767f0e152f0fb518899a0775bc Mon Sep 17 00:00:00 2001 From: Borislav Petkov Date: Thu, 21 Mar 2013 18:16:57 +0100 Subject: [PATCH] --- yaml --- r: 366242 b: refs/heads/master c: 5952886bfeec065041d04dfcc2693b581e8f2424 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/x86/include/asm/pgtable_types.h | 1 - trunk/arch/x86/mm/pageattr.c | 9 ++++----- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index a536b6a3dfdf..d6554cae1352 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ec7fd34425f6536ed4b3548e7aa712ee2718189c +refs/heads/master: 5952886bfeec065041d04dfcc2693b581e8f2424 diff --git a/trunk/arch/x86/include/asm/pgtable_types.h b/trunk/arch/x86/include/asm/pgtable_types.h index 567b5d0632b2..e6423002c10b 100644 --- a/trunk/arch/x86/include/asm/pgtable_types.h +++ b/trunk/arch/x86/include/asm/pgtable_types.h @@ -351,7 +351,6 @@ static inline void update_page_count(int level, unsigned long pages) { } * as a pte too. */ extern pte_t *lookup_address(unsigned long address, unsigned int *level); -extern int __split_large_page(pte_t *kpte, unsigned long address, pte_t *pbase); extern phys_addr_t slow_virt_to_phys(void *__address); #endif /* !__ASSEMBLY__ */ diff --git a/trunk/arch/x86/mm/pageattr.c b/trunk/arch/x86/mm/pageattr.c index 091934e1d0d9..25b1d35c76cb 100644 --- a/trunk/arch/x86/mm/pageattr.c +++ b/trunk/arch/x86/mm/pageattr.c @@ -542,13 +542,14 @@ try_preserve_large_page(pte_t *kpte, unsigned long address, return do_split; } -int __split_large_page(pte_t *kpte, unsigned long address, pte_t *pbase) +static int +__split_large_page(pte_t *kpte, unsigned long address, struct page *base) { + pte_t *pbase = (pte_t *)page_address(base); unsigned long pfn, pfninc = 1; unsigned int i, level; pte_t *tmp; pgprot_t ref_prot; - struct page *base = virt_to_page(pbase); spin_lock(&pgd_lock); /* @@ -633,7 +634,6 @@ int __split_large_page(pte_t *kpte, unsigned long address, pte_t *pbase) static int split_large_page(pte_t *kpte, unsigned long address) { - pte_t *pbase; struct page *base; if (!debug_pagealloc) @@ -644,8 +644,7 @@ static int split_large_page(pte_t *kpte, unsigned long address) if (!base) return -ENOMEM; - pbase = (pte_t *)page_address(base); - if (__split_large_page(kpte, address, pbase)) + if (__split_large_page(kpte, address, base)) __free_page(base); return 0;