diff --git a/mm/page_alloc.c b/mm/page_alloc.c index e2b42f603b1a61..9005ec0514fe64 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -348,6 +348,9 @@ static inline bool update_defer_init(pg_data_t *pgdat, /* Always populate low zones for address-constrained allocations */ if (zone_end < pgdat_end_pfn(pgdat)) return true; + /* Xen PV domains need page structures early */ + if (xen_pv_domain()) + return true; (*nr_initialised)++; if ((*nr_initialised > pgdat->static_init_pgcnt) && (pfn & (PAGES_PER_SECTION - 1)) == 0) {