diff options
author | Li Zefan <lizf@cn.fujitsu.com> | 2009-01-06 10:39:06 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-06 11:07:04 +0100 |
commit | 0c910d289567163dbe40ccc174b36afd1c7723bd (patch) | |
tree | 9458ac750e2f174936d7e0704d25548c110e0fa0 /kernel | |
parent | Merge branches 'sched/clock', 'sched/cleanups' and 'linus' into sched/urgent (diff) | |
download | linux-0c910d289567163dbe40ccc174b36afd1c7723bd.tar.xz linux-0c910d289567163dbe40ccc174b36afd1c7723bd.zip |
sched: fix double kfree in failure path
It's not the responsibility of init_rootdomain() to free root_domain
allocated by alloc_rootdomain().
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Reviewed-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/sched.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index c5019a5dcaa4..973f97362ceb 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -6970,7 +6970,7 @@ static int init_rootdomain(struct root_domain *rd, bool bootmem) } if (!alloc_cpumask_var(&rd->span, GFP_KERNEL)) - goto free_rd; + goto out; if (!alloc_cpumask_var(&rd->online, GFP_KERNEL)) goto free_span; if (!alloc_cpumask_var(&rd->rto_mask, GFP_KERNEL)) @@ -6986,8 +6986,7 @@ free_online: free_cpumask_var(rd->online); free_span: free_cpumask_var(rd->span); -free_rd: - kfree(rd); +out: return -ENOMEM; } |