HPAGE_PMD_SIZE
mmu->s_pg_sz_m != TO_MB(HPAGE_PMD_SIZE))
(unsigned long)TO_MB(HPAGE_PMD_SIZE));
max_hpte_count = HPAGE_PMD_SIZE >> shift;
flush_pmd_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
flush_pmd_tlb_range(vma, addr, addr + HPAGE_PMD_SIZE);
end = addr + HPAGE_PMD_SIZE;
flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
return HPAGE_PMD_SIZE;
alignments[1] = HPAGE_PMD_SIZE;
mss->anonymous_thp += HPAGE_PMD_SIZE;
mss->shmem_thp += HPAGE_PMD_SIZE;
mss->file_thp += HPAGE_PMD_SIZE;
HPAGE_PMD_SIZE/PAGE_SIZE);
tlb_flush_pmd_range(tlb, address, HPAGE_PMD_SIZE); \
#define HPAGE_PMD_MASK (~(HPAGE_PMD_SIZE - 1))
young |= mmu_notifier_clear_young(vma->vm_mm, addr, addr + HPAGE_PMD_SIZE);
*priv->folio_sz = HPAGE_PMD_SIZE;
haddr + HPAGE_PMD_SIZE);
tlb_change_page_size(tlb, HPAGE_PMD_SIZE);
if (next - addr != HPAGE_PMD_SIZE) {
tlb_change_page_size(tlb, HPAGE_PMD_SIZE);
tlb_remove_page_size(tlb, &folio->page, HPAGE_PMD_SIZE);
tlb_change_page_size(tlb, HPAGE_PMD_SIZE);
tlb_flush_pmd_range(tlb, addr, HPAGE_PMD_SIZE);
flush_cache_range(src_vma, src_addr, src_addr + HPAGE_PMD_SIZE);
src_addr + HPAGE_PMD_SIZE);
VM_BUG_ON_VMA(vma->vm_end < haddr + HPAGE_PMD_SIZE, vma);
VM_WARN_ON_ONCE(!IS_ALIGNED(address, HPAGE_PMD_SIZE));
(address & HPAGE_PMD_MASK) + HPAGE_PMD_SIZE);
if (!IS_ALIGNED(address, HPAGE_PMD_SIZE) &&
range_in_vma(vma, ALIGN_DOWN(address, HPAGE_PMD_SIZE),
ALIGN(address, HPAGE_PMD_SIZE)))
VM_WARN_ON_ONCE(!IS_ALIGNED(addr, HPAGE_PMD_SIZE));
return sysfs_emit(buf, "%lu\n", HPAGE_PMD_SIZE);
flush_cache_range(vma, address, address + HPAGE_PMD_SIZE);
address + HPAGE_PMD_SIZE);
unsigned long end = haddr + HPAGE_PMD_SIZE;
!range_in_vma(vma, haddr, haddr + HPAGE_PMD_SIZE))
haddr, haddr + HPAGE_PMD_SIZE);
vma->vm_end < addr + HPAGE_PMD_SIZE)
addr, addr + HPAGE_PMD_SIZE);
hstart = round_up(vma->vm_start, HPAGE_PMD_SIZE);
hend = round_down(vma->vm_end, HPAGE_PMD_SIZE);
khugepaged_scan.address + HPAGE_PMD_SIZE >
khugepaged_scan.address += HPAGE_PMD_SIZE;
for (addr = hstart; addr < hend; addr += HPAGE_PMD_SIZE) {
loff_t lend = lstart + HPAGE_PMD_SIZE - 1;
unsigned long end = address + HPAGE_PMD_SIZE;
tlb_change_page_size(tlb, HPAGE_PMD_SIZE);
if (next - addr != HPAGE_PMD_SIZE) {
VM_BUG_ON_VMA(next-addr != HPAGE_PMD_SIZE, src_vma);
if (next - addr != HPAGE_PMD_SIZE)
next - addr == HPAGE_PMD_SIZE && pmd_none(*pmd)) {
(IS_ALIGNED(start, HPAGE_PMD_SIZE) &&
IS_ALIGNED(end, HPAGE_PMD_SIZE))) {
(IS_ALIGNED(start, HPAGE_PMD_SIZE) &&
IS_ALIGNED(end, HPAGE_PMD_SIZE))) {
flush_cache_page(vma, addr, addr + HPAGE_PMD_SIZE);
if ((next - addr != HPAGE_PMD_SIZE) ||
if (extent == HPAGE_PMD_SIZE &&
flush_pmd_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
flush_pmd_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
flush_pmd_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
flush_pmd_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
address + HPAGE_PMD_SIZE);
stat->blksize = HPAGE_PMD_SIZE;
hpage_size = HPAGE_PMD_SIZE;
src_end - src_addr < HPAGE_PMD_SIZE;
step_size = HPAGE_PMD_SIZE;