From a2733b9275c4f1de7e510365f0f967a92f757411 Mon Sep 17 00:00:00 2001 From: Sha Zhengju Date: Thu, 3 May 2012 15:43:10 +1000 Subject: [PATCH] memcg: free spare array to avoid memory leak When the last event is unregistered, there is no need to keep the spare array anymore. So free it to avoid memory leak. Signed-off-by: Sha Zhengju Acked-by: KAMEZAWA Hiroyuki Reviewed-by: Kirill A. Shutemov Signed-off-by: Andrew Morton --- mm/memcontrol.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index bdf43048e1e6..e379af2ce91f 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4523,6 +4523,12 @@ static void mem_cgroup_usage_unregister_event(struct cgroup *cgrp, swap_buffers: /* Swap primary and spare array */ thresholds->spare = thresholds->primary; + /* If all events are unregistered, free the spare array */ + if (!new) { + kfree(thresholds->spare); + thresholds->spare = NULL; + } + rcu_assign_pointer(thresholds->primary, new); /* To be sure that nobody uses thresholds */ -- 2.39.5