.. | .. |
---|
26 | 26 | #define p4d_ERROR(p4d) (pgd_ERROR((p4d).pgd)) |
---|
27 | 27 | |
---|
28 | 28 | #define pgd_populate(mm, pgd, p4d) do { } while (0) |
---|
| 29 | +#define pgd_populate_safe(mm, pgd, p4d) do { } while (0) |
---|
29 | 30 | /* |
---|
30 | 31 | * (p4ds are folded into pgds so this doesn't get actually called, |
---|
31 | 32 | * but the define is needed for a generic inline function.) |
---|
.. | .. |
---|
41 | 42 | #define __p4d(x) ((p4d_t) { __pgd(x) }) |
---|
42 | 43 | |
---|
43 | 44 | #define pgd_page(pgd) (p4d_page((p4d_t){ pgd })) |
---|
44 | | -#define pgd_page_vaddr(pgd) (p4d_page_vaddr((p4d_t){ pgd })) |
---|
| 45 | +#define pgd_page_vaddr(pgd) ((unsigned long)(p4d_pgtable((p4d_t){ pgd }))) |
---|
45 | 46 | |
---|
46 | 47 | /* |
---|
47 | 48 | * allocating and freeing a p4d is trivial: the 1-entry p4d is |
---|
.. | .. |
---|
49 | 50 | */ |
---|
50 | 51 | #define p4d_alloc_one(mm, address) NULL |
---|
51 | 52 | #define p4d_free(mm, x) do { } while (0) |
---|
52 | | -#define __p4d_free_tlb(tlb, x, a) do { } while (0) |
---|
| 53 | +#define p4d_free_tlb(tlb, x, a) do { } while (0) |
---|
53 | 54 | |
---|
54 | 55 | #undef p4d_addr_end |
---|
55 | 56 | #define p4d_addr_end(addr, end) (end) |
---|