diff options
Diffstat (limited to 'arch/sparc/mm/sun4c.c')
-rw-r--r-- | arch/sparc/mm/sun4c.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/arch/sparc/mm/sun4c.c b/arch/sparc/mm/sun4c.c index 0729305f2f59..c0442e8c4b15 100644 --- a/arch/sparc/mm/sun4c.c +++ b/arch/sparc/mm/sun4c.c | |||
@@ -1947,12 +1947,17 @@ static pte_t *sun4c_pte_alloc_one_kernel(struct mm_struct *mm, unsigned long add | |||
1947 | return pte; | 1947 | return pte; |
1948 | } | 1948 | } |
1949 | 1949 | ||
1950 | static struct page *sun4c_pte_alloc_one(struct mm_struct *mm, unsigned long address) | 1950 | static pgtable_t sun4c_pte_alloc_one(struct mm_struct *mm, unsigned long address) |
1951 | { | 1951 | { |
1952 | pte_t *pte = sun4c_pte_alloc_one_kernel(mm, address); | 1952 | pte_t *pte; |
1953 | struct page *page; | ||
1954 | |||
1955 | pte = sun4c_pte_alloc_one_kernel(mm, address); | ||
1953 | if (pte == NULL) | 1956 | if (pte == NULL) |
1954 | return NULL; | 1957 | return NULL; |
1955 | return virt_to_page(pte); | 1958 | page = virt_to_page(pte); |
1959 | pgtable_page_ctor(page); | ||
1960 | return page; | ||
1956 | } | 1961 | } |
1957 | 1962 | ||
1958 | static inline void sun4c_free_pte_fast(pte_t *pte) | 1963 | static inline void sun4c_free_pte_fast(pte_t *pte) |
@@ -1962,8 +1967,9 @@ static inline void sun4c_free_pte_fast(pte_t *pte) | |||
1962 | pgtable_cache_size++; | 1967 | pgtable_cache_size++; |
1963 | } | 1968 | } |
1964 | 1969 | ||
1965 | static void sun4c_pte_free(struct page *pte) | 1970 | static void sun4c_pte_free(pgtable_t pte) |
1966 | { | 1971 | { |
1972 | pgtable_page_dtor(pte); | ||
1967 | sun4c_free_pte_fast(page_address(pte)); | 1973 | sun4c_free_pte_fast(page_address(pte)); |
1968 | } | 1974 | } |
1969 | 1975 | ||