MAX_ORDER_NR_PAGES
MAX_ORDER_NR_PAGES);
if (size > PAGE_SIZE * MAX_ORDER_NR_PAGES) {
u64 min_chunk = min_t(u64, preferred, PAGE_SIZE * MAX_ORDER_NR_PAGES);
#define HMCDRV_CACHE_SIZE_DFLT (MAX_ORDER_NR_PAGES * PAGE_SIZE / 2UL)
if (page_offline_frozen++ % MAX_ORDER_NR_PAGES == 0) {
#define IS_MAX_ORDER_ALIGNED(pfn) IS_ALIGNED(pfn, MAX_ORDER_NR_PAGES)
pages = min_t(unsigned long, pages, MAX_ORDER_NR_PAGES);
if (nr_pages_pool > MAX_ORDER_NR_PAGES ||
nr_pages_meta > MAX_ORDER_NR_PAGES) {
if (unlikely(nr_pages > MAX_ORDER_NR_PAGES))
VM_WARN_ON_ONCE(order > MAX_ORDER_NR_PAGES);
start = pgdat->node_start_pfn & ~(MAX_ORDER_NR_PAGES - 1);
end = ALIGN(pgdat_end_pfn(pgdat), MAX_ORDER_NR_PAGES);
if (nr_pages == MAX_ORDER_NR_PAGES && IS_MAX_ORDER_ALIGNED(pfn)) {
unsigned long mo_pfn = ALIGN(spfn + 1, MAX_ORDER_NR_PAGES);
round_up(required_movablecore, MAX_ORDER_NR_PAGES);
round_up(zone_movable_pfn[nid], MAX_ORDER_NR_PAGES);
end_pfn = round_up(end_pfn, MAX_ORDER_NR_PAGES);
account_freepages(zone, -MAX_ORDER_NR_PAGES, MIGRATE_MOVABLE);
__mod_zone_page_state(zone, NR_UNACCEPTED, -MAX_ORDER_NR_PAGES);
to_accept -= MAX_ORDER_NR_PAGES;
account_freepages(zone, MAX_ORDER_NR_PAGES, MIGRATE_MOVABLE);
__mod_zone_page_state(zone, NR_UNACCEPTED, MAX_ORDER_NR_PAGES);
MAX_ORDER_NR_PAGES);
if (!IS_ALIGNED(node_start_pfn(nid), MAX_ORDER_NR_PAGES) ||
!IS_ALIGNED(node_end_pfn(nid), MAX_ORDER_NR_PAGES))
nr_pages += MAX_ORDER_NR_PAGES;
start_pfn = max(ALIGN_DOWN(isolate_pageblock, MAX_ORDER_NR_PAGES),
pfn += MAX_ORDER_NR_PAGES;
pfn = ALIGN(pfn + 1, MAX_ORDER_NR_PAGES);
while (!pfn_valid(pfn) && (pfn & (MAX_ORDER_NR_PAGES - 1)) != 0)
if ((pfn & (MAX_ORDER_NR_PAGES - 1)) == 0 && !pfn_valid(pfn)) {
pfn += MAX_ORDER_NR_PAGES - 1;
pfn = ALIGN(pfn + 1, MAX_ORDER_NR_PAGES);