From: David Rientjes Date: Mon, 25 Sep 2006 23:24:57 +0000 (-0700) Subject: [PATCH] do not free non slab allocated per_cpu_pageset X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=f3ef9ead31ae995251b420ac98398bd7545bf4e1;p=openwrt%2Fstaging%2Fblogic.git [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 Acked-by: Christoph Lameter Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- 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) for_each_zone(zone) { struct per_cpu_pageset *pset = zone_pcp(zone, cpu); + /* Free per_cpu_pageset if it is slab allocated */ + if (pset != &boot_pageset[cpu]) + kfree(pset); zone_pcp(zone, cpu) = NULL; - kfree(pset); } }