aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-x86')
-rw-r--r--include/asm-x86/pgalloc_32.h20
1 files changed, 3 insertions, 17 deletions
diff --git a/include/asm-x86/pgalloc_32.h b/include/asm-x86/pgalloc_32.h
index 10c2b452e64c..7641e7b5d931 100644
--- a/include/asm-x86/pgalloc_32.h
+++ b/include/asm-x86/pgalloc_32.h
@@ -3,6 +3,7 @@
3 3
4#include <linux/threads.h> 4#include <linux/threads.h>
5#include <linux/mm.h> /* for struct page */ 5#include <linux/mm.h> /* for struct page */
6#include <linux/pagemap.h>
6#include <asm/tlb.h> 7#include <asm/tlb.h>
7#include <asm-generic/tlb.h> 8#include <asm-generic/tlb.h>
8 9
@@ -51,11 +52,7 @@ static inline void pte_free(struct page *pte)
51} 52}
52 53
53 54
54static inline void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte) 55extern void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte);
55{
56 paravirt_release_pt(page_to_pfn(pte));
57 tlb_remove_page(tlb, pte);
58}
59 56
60#ifdef CONFIG_X86_PAE 57#ifdef CONFIG_X86_PAE
61/* 58/*
@@ -72,18 +69,7 @@ static inline void pmd_free(pmd_t *pmd)
72 free_page((unsigned long)pmd); 69 free_page((unsigned long)pmd);
73} 70}
74 71
75static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd) 72extern void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd);
76{
77 /* This is called just after the pmd has been detached from
78 the pgd, which requires a full tlb flush to be recognized
79 by the CPU. Rather than incurring multiple tlb flushes
80 while the address space is being pulled down, make the tlb
81 gathering machinery do a full flush when we're done. */
82 tlb->fullmm = 1;
83
84 paravirt_release_pd(__pa(pmd) >> PAGE_SHIFT);
85 tlb_remove_page(tlb, virt_to_page(pmd));
86}
87 73
88static inline void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd) 74static inline void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
89{ 75{