|
|
@@ -5538,6 +5538,18 @@ not_early:
|
|
|
cond_resched();
|
|
|
}
|
|
|
}
|
|
|
+#ifdef CONFIG_SPARSEMEM
|
|
|
+ /*
|
|
|
+ * If the zone does not span the rest of the section then
|
|
|
+ * we should at least initialize those pages. Otherwise we
|
|
|
+ * could blow up on a poisoned page in some paths which depend
|
|
|
+ * on full sections being initialized (e.g. memory hotplug).
|
|
|
+ */
|
|
|
+ while (end_pfn % PAGES_PER_SECTION) {
|
|
|
+ __init_single_page(pfn_to_page(end_pfn), end_pfn, zone, nid);
|
|
|
+ end_pfn++;
|
|
|
+ }
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
static void __meminit zone_init_free_lists(struct zone *zone)
|