CONT_PTE_SIZE
case CONT_PTE_SIZE:
#define CONT_PTE_MASK (~(CONT_PTE_SIZE - 1))
({ unsigned long __boundary = ((addr) + CONT_PTE_SIZE) & CONT_PTE_MASK; \
#define pte_leaf_size(pte) (pte_cont(pte) ? CONT_PTE_SIZE : PAGE_SIZE)
addr = round_down(addr, CONT_PTE_SIZE);
addr + CONT_PTE_SIZE);
if (end - addr < CONT_PTE_SIZE)
if (!IS_ALIGNED(addr, CONT_PTE_SIZE))
if (!IS_ALIGNED(PFN_PHYS(pfn), CONT_PTE_SIZE))
return CONT_PTE_SIZE;
return pte_valid_cont(__ptep_get(ptep)) ? CONT_PTE_SIZE : PAGE_SIZE;
if (size >= CONT_PTE_SIZE)
u64 cmask = (level == 3) ? CONT_PTE_SIZE - 1 : U64_MAX;
cont_start = ALIGN_DOWN(addr, CONT_PTE_SIZE);
cont_end = cont_start + CONT_PTE_SIZE;
*end = ALIGN(*end, CONT_PTE_SIZE);
*start = ALIGN_DOWN(*start, CONT_PTE_SIZE);
start_addr = addr = ALIGN_DOWN(addr, CONT_PTE_SIZE);
start_addr = addr = ALIGN_DOWN(addr, CONT_PTE_SIZE);
case CONT_PTE_SIZE:
} else if (sz == (CONT_PTE_SIZE)) {
if (sz == CONT_PTE_SIZE)
case CONT_PTE_SIZE:
return PMD_SIZE - CONT_PTE_SIZE;
case CONT_PTE_SIZE:
case CONT_PTE_SIZE:
if (ALIGN_DOWN(addr, CONT_PTE_SIZE) == addr)