]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - mm/memcontrol.c
memcg: free spare array to avoid memory leak
[mv-sheeva.git] / mm / memcontrol.c
index 31ab9c3f0178d3f7193d5e2b6e6935926cf1d48d..b659260c56ad5591c4debdae6b865a057fb01b7c 100644 (file)
@@ -4507,6 +4507,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 */