Commit-ID: 4b12db939166042eb78e592bdf94ef113c14e379 Gitweb: http://git.kernel.org/tip/4b12db939166042eb78e592bdf94ef113c14e379 Author: Mathieu Poirier <[email protected]> AuthorDate: Tue, 24 Jan 2017 14:11:35 -0700 Committer: Ingo Molnar <[email protected]> CommitDate: Mon, 30 Jan 2017 11:46:37 +0100
sched/core: Fix &rd->cpudl memory leak While in the process of initialising a root domain, if function cpupri_init() fails the memory allocated in cpudl_init() is not reclaimed. Adding a new goto target to cleanup the previous initialistion of the root_domain's dl_bw structure reclaims said memory. Signed-off-by: Mathieu Poirier <[email protected]> Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: Mike Galbraith <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Ingo Molnar <[email protected]> --- kernel/sched/core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 17d1df6..d01f9d0 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5979,9 +5979,11 @@ static int init_rootdomain(struct root_domain *rd) goto free_rto_mask; if (cpupri_init(&rd->cpupri) != 0) - goto free_rto_mask; + goto free_cpudl; return 0; +free_cpudl: + cpudl_cleanup(&rd->cpudl); free_rto_mask: free_cpumask_var(rd->rto_mask); free_dlo_mask:

