PAGES_PER_SUBSECTION
for (; (unsigned long)start < vmemmap_end; start += PAGES_PER_SUBSECTION)
#define PAGE_SUBSECTION_MASK (~(PAGES_PER_SUBSECTION-1))
#define SUBSECTION_ALIGN_UP(pfn) ALIGN((pfn), PAGES_PER_SUBSECTION)
return (pfn & ~(PAGE_SECTION_MASK)) / PAGES_PER_SUBSECTION;
*pfn = (*pfn & PAGE_SECTION_MASK) + (bit * PAGES_PER_SUBSECTION);
min_align = PAGES_PER_SUBSECTION;
for (; start_pfn < end_pfn; start_pfn += PAGES_PER_SUBSECTION) {
for (; pfn >= start_pfn; pfn -= PAGES_PER_SUBSECTION) {
return !IS_ALIGNED(offset, nr_pages) && nr_pages > PAGES_PER_SUBSECTION;
if (WARN_ON_ONCE(!IS_ALIGNED(pfn, PAGES_PER_SUBSECTION) ||
!IS_ALIGNED(nr_pages, PAGES_PER_SUBSECTION)))