diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 73f5d4556b3d0b..76102c974f66ad 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -6249,6 +6249,8 @@ void __paginginit zero_resv_unavail(void) pgcnt = 0; for_each_resv_unavail_range(i, &start, &end) { for (pfn = PFN_DOWN(start); pfn < PFN_UP(end); pfn++) { + if (!pfn_valid(ALIGN_DOWN(pfn, pageblock_nr_pages))) + continue; mm_zero_struct_page(pfn_to_page(pfn)); pgcnt++; }