diff options
Diffstat (limited to 'arch/x86/mm/pageattr.c')
| -rw-r--r-- | arch/x86/mm/pageattr.c | 9 | 
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c index fb4e73ec24d..bb32480c2d7 100644 --- a/arch/x86/mm/pageattr.c +++ b/arch/x86/mm/pageattr.c @@ -542,13 +542,14 @@ out_unlock:  	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;  |