diff options
author | David Rientjes <rientjes@cs.washington.edu> | 2006-09-25 19:24:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-25 20:38:36 -0400 |
commit | f3ef9ead31ae995251b420ac98398bd7545bf4e1 (patch) | |
tree | aa5addbe49c1f7864bc2e5023b7edb11aaf3706b /mm/page_alloc.c | |
parent | 24fd425edd53ea580cad917e825c1f6715e9b939 (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.c | 4 |
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 | ||