diff options
Diffstat (limited to 'include/asm-m68k/motorola_pgalloc.h')
-rw-r--r-- | include/asm-m68k/motorola_pgalloc.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/include/asm-m68k/motorola_pgalloc.h b/include/asm-m68k/motorola_pgalloc.h index 500ec9b8b189..d08bf6261df8 100644 --- a/include/asm-m68k/motorola_pgalloc.h +++ b/include/asm-m68k/motorola_pgalloc.h | |||
@@ -7,7 +7,6 @@ | |||
7 | extern pmd_t *get_pointer_table(void); | 7 | extern pmd_t *get_pointer_table(void); |
8 | extern int free_pointer_table(pmd_t *); | 8 | extern int free_pointer_table(pmd_t *); |
9 | 9 | ||
10 | |||
11 | static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) | 10 | static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) |
12 | { | 11 | { |
13 | pte_t *pte; | 12 | pte_t *pte; |
@@ -28,7 +27,7 @@ static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) | |||
28 | free_page((unsigned long) pte); | 27 | free_page((unsigned long) pte); |
29 | } | 28 | } |
30 | 29 | ||
31 | static inline struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) | 30 | static inline pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address) |
32 | { | 31 | { |
33 | struct page *page = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0); | 32 | struct page *page = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0); |
34 | pte_t *pte; | 33 | pte_t *pte; |
@@ -43,19 +42,21 @@ static inline struct page *pte_alloc_one(struct mm_struct *mm, unsigned long add | |||
43 | nocache_page(pte); | 42 | nocache_page(pte); |
44 | } | 43 | } |
45 | kunmap(pte); | 44 | kunmap(pte); |
46 | 45 | pgtable_page_ctor(page); | |
47 | return page; | 46 | return page; |
48 | } | 47 | } |
49 | 48 | ||
50 | static inline void pte_free(struct mm_struct *mm, struct page *page) | 49 | static inline void pte_free(struct mm_struct *mm, pgtable_t page) |
51 | { | 50 | { |
51 | pgtable_page_dtor(page); | ||
52 | cache_page(kmap(page)); | 52 | cache_page(kmap(page)); |
53 | kunmap(page); | 53 | kunmap(page); |
54 | __free_page(page); | 54 | __free_page(page); |
55 | } | 55 | } |
56 | 56 | ||
57 | static inline void __pte_free_tlb(struct mmu_gather *tlb, struct page *page) | 57 | static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t page) |
58 | { | 58 | { |
59 | pgtable_page_dtor(page); | ||
59 | cache_page(kmap(page)); | 60 | cache_page(kmap(page)); |
60 | kunmap(page); | 61 | kunmap(page); |
61 | __free_page(page); | 62 | __free_page(page); |
@@ -94,10 +95,11 @@ static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t * | |||
94 | pmd_set(pmd, pte); | 95 | pmd_set(pmd, pte); |
95 | } | 96 | } |
96 | 97 | ||
97 | static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, struct page *page) | 98 | static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t page) |
98 | { | 99 | { |
99 | pmd_set(pmd, page_address(page)); | 100 | pmd_set(pmd, page_address(page)); |
100 | } | 101 | } |
102 | #define pmd_pgtable(pmd) pmd_page(pmd) | ||
101 | 103 | ||
102 | static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd) | 104 | static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd) |
103 | { | 105 | { |