| .. | .. |
|---|
| 45 | 45 | { |
|---|
| 46 | 46 | return (pmd_t *)pud; |
|---|
| 47 | 47 | } |
|---|
| 48 | +#define pmd_offset pmd_offset |
|---|
| 48 | 49 | |
|---|
| 49 | 50 | #define pmd_val(x) (pud_val((x).pud)) |
|---|
| 50 | 51 | #define __pmd(x) ((pmd_t) { __pud(x) } ) |
|---|
| 51 | 52 | |
|---|
| 52 | 53 | #define pud_page(pud) (pmd_page((pmd_t){ pud })) |
|---|
| 53 | | -#define pud_page_vaddr(pud) (pmd_page_vaddr((pmd_t){ pud })) |
|---|
| 54 | +#define pud_pgtable(pud) ((pmd_t *)(pmd_page_vaddr((pmd_t){ pud }))) |
|---|
| 54 | 55 | |
|---|
| 55 | 56 | /* |
|---|
| 56 | 57 | * allocating and freeing a pmd is trivial: the 1-entry pmd is |
|---|
| .. | .. |
|---|
| 60 | 61 | static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) |
|---|
| 61 | 62 | { |
|---|
| 62 | 63 | } |
|---|
| 63 | | -#define __pmd_free_tlb(tlb, x, a) do { } while (0) |
|---|
| 64 | +#define pmd_free_tlb(tlb, x, a) do { } while (0) |
|---|
| 64 | 65 | |
|---|
| 65 | 66 | #undef pmd_addr_end |
|---|
| 66 | 67 | #define pmd_addr_end(addr, end) (end) |
|---|