[PATCH] boot_pageset must not be freed.

The boot_pageset needs to be preserved for hotplugging and for off line
processors and nodes. Otherwise pointers will point into memory that has
now a different use. /proc/zoneinfo is currently showing strange results
if processors / nodes are not present.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by Christoph Lameter and committed by Linus Torvalds b7c84c6a a4936044

+9 -2
+9 -2
mm/page_alloc.c
··· 1742 * with interrupts disabled. 1743 * 1744 * Some NUMA counter updates may also be caught by the boot pagesets. 1745 - * These will be discarded when bootup is complete. 1746 */ 1747 static struct per_cpu_pageset 1748 - boot_pageset[NR_CPUS] __initdata; 1749 1750 /* 1751 * Dynamically allocate memory for the
··· 1742 * with interrupts disabled. 1743 * 1744 * Some NUMA counter updates may also be caught by the boot pagesets. 1745 + * 1746 + * The boot_pagesets must be kept even after bootup is complete for 1747 + * unused processors and/or zones. They do play a role for bootstrapping 1748 + * hotplugged processors. 1749 + * 1750 + * zoneinfo_show() and maybe other functions do 1751 + * not check if the processor is online before following the pageset pointer. 1752 + * Other parts of the kernel may not check if the zone is available. 1753 */ 1754 static struct per_cpu_pageset 1755 + boot_pageset[NR_CPUS]; 1756 1757 /* 1758 * Dynamically allocate memory for the