| .. | .. |
|---|
| 845 | 845 | return ((unsigned long) __va(pfn << PAGE_SHIFT)); |
|---|
| 846 | 846 | } |
|---|
| 847 | 847 | |
|---|
| 848 | | -static inline unsigned long pud_page_vaddr(pud_t pud) |
|---|
| 848 | +static inline pmd_t *pud_pgtable(pud_t pud) |
|---|
| 849 | 849 | { |
|---|
| 850 | 850 | pte_t pte = __pte(pud_val(pud)); |
|---|
| 851 | 851 | unsigned long pfn; |
|---|
| 852 | 852 | |
|---|
| 853 | 853 | pfn = pte_pfn(pte); |
|---|
| 854 | 854 | |
|---|
| 855 | | - return ((unsigned long) __va(pfn << PAGE_SHIFT)); |
|---|
| 855 | + return ((pmd_t *) __va(pfn << PAGE_SHIFT)); |
|---|
| 856 | 856 | } |
|---|
| 857 | 857 | |
|---|
| 858 | 858 | #define pmd_page(pmd) virt_to_page((void *)pmd_page_vaddr(pmd)) |
|---|
| 859 | | -#define pud_page(pud) virt_to_page((void *)pud_page_vaddr(pud)) |
|---|
| 859 | +#define pud_page(pud) virt_to_page((void *)pud_pgtable(pud)) |
|---|
| 860 | 860 | #define pmd_clear(pmdp) (pmd_val(*(pmdp)) = 0UL) |
|---|
| 861 | 861 | #define pud_present(pud) (pud_val(pud) != 0U) |
|---|
| 862 | 862 | #define pud_clear(pudp) (pud_val(*(pudp)) = 0UL) |
|---|
| 863 | | -#define p4d_page_vaddr(p4d) \ |
|---|
| 864 | | - ((unsigned long) __va(p4d_val(p4d))) |
|---|
| 863 | +#define p4d_pgtable(p4d) \ |
|---|
| 864 | + ((pud_t *) __va(p4d_val(p4d))) |
|---|
| 865 | 865 | #define p4d_present(p4d) (p4d_val(p4d) != 0U) |
|---|
| 866 | 866 | #define p4d_clear(p4dp) (p4d_val(*(p4dp)) = 0UL) |
|---|
| 867 | 867 | |
|---|