p4d_val
#define p4d_none(x) (!p4d_val(x))
#define p4d_bad(x) ((p4d_val(x) & ~PAGE_MASK))
#define p4d_present(x) (p4d_val(x))
#define p4d_clear(xp) do { p4d_val(*(xp)) = 0; } while (0)
#define p4d_pgtable(p4d) ((pud_t *)(p4d_val(p4d) & PAGE_MASK))
note_page(st, addr, 2, p4d_val(*p4d), NULL);
pr_err("%s:%d: bad p4d %016llx.\n", __FILE__, __LINE__, p4d_val(e))
return __pte(p4d_val(p4d));
#define p4d_none(p4d) (pgtable_l4_enabled() && !p4d_val(p4d))
((p4d_val(p4d) & P4D_TYPE_MASK) != \
set_swapper_pgd((pgd_t *)p4dp, __pgd(p4d_val(p4d)));
pr_cont(", p4d=%016llx", p4d_val(p4d));
BUG_ON(p4d_val(old_p4d) != 0 &&
p4d_val(old_p4d) != READ_ONCE(p4d_val(*p4dp)));
note_page(pt_st, addr, 1, p4d_val(p4d));
return p4d_val(p4d) == (unsigned long)invalid_pud_table;
return p4d_val(p4d) & ~PAGE_MASK;
return p4d_val(p4d) != (unsigned long)invalid_pud_table;
return (pud_t *)p4d_val(p4d);
#define p4d_phys(p4d) PHYSADDR(p4d_val(p4d))
#define __p4d_none(early, p4d) (early ? (p4d_val(p4d) == 0) : \
(__pa(p4d_val(p4d)) == (unsigned long)__pa(kasan_early_shadow_pud)))
val = __p4d(set_pageattr_masks(p4d_val(val), walk));
return p4d_val(p4d) == (unsigned long)invalid_pud_table;
if (unlikely(p4d_val(p4d) & ~PAGE_MASK))
return p4d_val(p4d) != (unsigned long)invalid_pud_table;
p4d_val(*p4dp) = (unsigned long)invalid_pud_table;
return (pud_t *)p4d_val(p4d);
#define p4d_phys(p4d) virt_to_phys((void *)p4d_val(p4d))
return (p4d_val(p4d) == 0);
return (pud_t *)__va(p4d_val(p4d) & ~P4D_MASKED_BITS);
return !!(p4d_val(p4d) & RADIX_P4D_BAD_BITS);
#define p4d_none(p4d) (!p4d_val(p4d))
#define p4d_bad(p4d) (p4d_val(p4d) == 0)
#define p4d_present(p4d) (p4d_val(p4d) != 0)
return (pud_t *) (p4d_val(p4d) & ~P4D_MASKED_BITS);
return __pte(p4d_val(p4d));
if (!(p4d_val(p4d) & _PAGE_PRESENT)) {
note_page(pt_st, addr, 1, p4d_val(p4d));
format_pte(p4dp, p4d_val(*p4dp));
printf("p4dp @ 0x%px = 0x%016lx\n", p4dp, p4d_val(*p4dp));
pr_err("%s:%d: bad p4d %016lx.\n", __FILE__, __LINE__, p4d_val(e))
set_pud((pud_t *)p4dp, (pud_t){ p4d_val(p4d) });
return (p4d_val(p4d) == 0);
return (p4d_val(p4d) & _PAGE_PRESENT);
return __page_val_to_pfn(p4d_val(p4d));
return (pud_t *)pfn_to_virt(__page_val_to_pfn(p4d_val(p4d)));
return (pud_t *)pud_pgtable((pud_t) { p4d_val(p4d) });
return pfn_to_page(__page_val_to_pfn(p4d_val(p4d)));
set_p4d(dst_p4dp, __p4d(p4d_val(p4d) | pgprot_val(prot)));
pr_cont(", p4d=%016lx", p4d_val(p4d));
if (p4d_val(p4dp[p4d_index]) == 0)
if (p4d_val(p4dp[p4d_index]) == 0) {
pgprot_t prot = __pgprot(p4d_val(p4dp_get(p4dp)) & ~_PAGE_PFN_MASK);
val = __p4d(set_pageattr_masks(p4d_val(val), walk));
note_page(pt_st, addr, 1, p4d_val(p4d));
crst_table_init((unsigned long *)kasan_early_shadow_p4d, p4d_val(p4d_z));
#define p4d_deref(pud) ((unsigned long)__va(p4d_val(pud) & _REGION_ENTRY_ORIGIN))
if ((p4d_val(p4d) & _REGION_ENTRY_TYPE_MASK) >= _REGION_ENTRY_TYPE_R2)
return (p4d_val(p4d) & _REGION_ENTRY_TYPE_MASK) < _REGION_ENTRY_TYPE_R2;
return (p4d_val(p4d) & _REGION_ENTRY_ORIGIN) != 0UL;
return p4d_val(p4d) == _REGION2_ENTRY_EMPTY;
return (p4d_val(p4d) & origin_mask) >> PAGE_SHIFT;
pr_err("%s:%d: bad p4d %016lx.\n", __FILE__, __LINE__, p4d_val(e))
unsigned long type = p4d_val(p4d) & _REGION_ENTRY_TYPE_MASK;
return (p4d_val(p4d) & ~_REGION_ENTRY_BITS) != 0;
if ((p4d_val(*p4d) & _REGION_ENTRY_TYPE_MASK) == _REGION_ENTRY_TYPE_R2)
note_page(pt_st, addr, 1, p4d_val(p4d));
(u64)p4d_val(*p4d));
#define p4d_none(p4d) (!p4d_val(p4d))
#define p4d_bad(p4d) (p4d_val(p4d) & ~PAGE_MASK)
((pud_t *) __va(p4d_val(p4d)))
#define p4d_present(p4d) (p4d_val(p4d) != 0U)
#define p4d_clear(p4dp) (p4d_val(*(p4dp)) = 0UL)
(p4d_val(*(p4dp)) = (__pa((unsigned long) (pudp))))
#define p4d_none(x) (!(p4d_val(x) & ~_PAGE_NEEDSYNC))
#define p4d_bad(x) ((p4d_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
#define p4d_present(x) (p4d_val(x) & _PAGE_PRESENT)
#define p4d_page(p4d) phys_to_page(p4d_val(p4d) & PAGE_MASK)
#define p4d_pgtable(p4d) ((pud_t *) __va(p4d_val(p4d) & PAGE_MASK))
#define p4d_needsync(x) (p4d_val(x) & _PAGE_NEEDSYNC)
#define p4d_mkuptodate(x) (p4d_val(x) &= ~_PAGE_NEEDSYNC)
set_p4d(p4d, __p4d(p4d_val(*p4d) | _PAGE_USER));
return PVOP_ALT_CALLEE1(p4dval_t, pv_ops, mmu.p4d_val, p4d.p4d,
struct paravirt_callee_save p4d_val;
return (pud_t *)__va(p4d_val(p4d) & p4d_pfn_mask(p4d));
return (p4d_val(p4d) & p4d_pfn_mask(p4d)) >> PAGE_SHIFT;
__FILE__, __LINE__, &(e), p4d_val(e))
.mmu.p4d_val = PTE_IDENT,
effective_prot(st, 1, p4d_val(p4d));
note_page(pt_st, addr, 1, p4d_val(p4d));
pr_cont("P4D %lx ", p4d_val(*p4d));
p4dval_t p4d_val = __pa_nodebug(kasan_early_shadow_pud) | _KERNPG_TABLE;
p4d_val &= __default_kernel_pte_mask;
kasan_early_shadow_p4d[i] = __p4d(p4d_val);
set_p4d(p4d, __p4d(p4d_val(*p4d) & ~_PAGE_NX));
pa = p4d_val(*p4d) & PHYSICAL_PAGE_MASK;
pv_ops.mmu.p4d_val = PV_CALLEE_SAVE(xen_p4d_val);
#define pud_val(x) (p4d_val((x).p4d))
return p4d_val(p4d_a) == p4d_val(p4d_b);
__entry->p4dval = p4d_val(p4dval)),
p4dv = p4d_val(p4d);