aboutsummaryrefslogtreecommitdiffstats
path: root/mm/page_alloc.c
diff options
context:
space:
mode:
authorDavid Rientjes <rientjes@cs.washington.edu>2006-09-25 19:24:57 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-09-25 20:38:36 -0400
commitf3ef9ead31ae995251b420ac98398bd7545bf4e1 (patch)
treeaa5addbe49c1f7864bc2e5023b7edb11aaf3706b /mm/page_alloc.c
parent24fd425edd53ea580cad917e825c1f6715e9b939 (diff)
[PATCH] do not free non slab allocated per_cpu_pageset
Stops panic associated with attempting to free a non slab-allocated per_cpu_pageset. Signed-off-by: David Rientjes <rientjes@cs.washington.edu> Acked-by: Christoph Lameter <clameter@sgi.com> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r--mm/page_alloc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 3b5358a0561f..8a52ba9fe693 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1845,8 +1845,10 @@ static inline void free_zone_pagesets(int cpu)
1845 for_each_zone(zone) { 1845 for_each_zone(zone) {
1846 struct per_cpu_pageset *pset = zone_pcp(zone, cpu); 1846 struct per_cpu_pageset *pset = zone_pcp(zone, cpu);
1847 1847
1848 /* Free per_cpu_pageset if it is slab allocated */
1849 if (pset != &boot_pageset[cpu])
1850 kfree(pset);
1848 zone_pcp(zone, cpu) = NULL; 1851 zone_pcp(zone, cpu) = NULL;
1849 kfree(pset);
1850 } 1852 }
1851} 1853}
1852 1854