diff options
Diffstat (limited to 'include/asm-cris/pgalloc.h')
-rw-r--r-- | include/asm-cris/pgalloc.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/include/asm-cris/pgalloc.h b/include/asm-cris/pgalloc.h index 8ddd66f81773..a1ba761d0573 100644 --- a/include/asm-cris/pgalloc.h +++ b/include/asm-cris/pgalloc.h | |||
@@ -6,6 +6,7 @@ | |||
6 | 6 | ||
7 | #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, pte) | 7 | #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, pte) |
8 | #define pmd_populate(mm, pmd, pte) pmd_set(pmd, page_address(pte)) | 8 | #define pmd_populate(mm, pmd, pte) pmd_set(pmd, page_address(pte)) |
9 | #define pmd_pgtable(pmd) pmd_page(pmd) | ||
9 | 10 | ||
10 | /* | 11 | /* |
11 | * Allocate and free page tables. | 12 | * Allocate and free page tables. |
@@ -27,10 +28,11 @@ static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long ad | |||
27 | return pte; | 28 | return pte; |
28 | } | 29 | } |
29 | 30 | ||
30 | static inline struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) | 31 | static inline pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address) |
31 | { | 32 | { |
32 | struct page *pte; | 33 | struct page *pte; |
33 | pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0); | 34 | pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0); |
35 | pgtable_page_ctor(pte); | ||
34 | return pte; | 36 | return pte; |
35 | } | 37 | } |
36 | 38 | ||
@@ -39,13 +41,17 @@ static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) | |||
39 | free_page((unsigned long)pte); | 41 | free_page((unsigned long)pte); |
40 | } | 42 | } |
41 | 43 | ||
42 | static inline void pte_free(struct mm_struct *mm, struct page *pte) | 44 | static inline void pte_free(struct mm_struct *mm, pgtable_t pte) |
43 | { | 45 | { |
46 | pgtable_page_dtor(pte); | ||
44 | __free_page(pte); | 47 | __free_page(pte); |
45 | } | 48 | } |
46 | 49 | ||
47 | 50 | #define __pte_free_tlb(tlb,pte) \ | |
48 | #define __pte_free_tlb(tlb,pte) tlb_remove_page((tlb),(pte)) | 51 | do { \ |
52 | pgtable_page_dtor(pte); \ | ||
53 | tlb_remove_page((tlb), pte); \ | ||
54 | } while (0) | ||
49 | 55 | ||
50 | #define check_pgt_cache() do { } while (0) | 56 | #define check_pgt_cache() do { } while (0) |
51 | 57 | ||