diff options
-rw-r--r-- | kernel/smp.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/smp.c b/kernel/smp.c index 449b707fc20d..3bb6ae533cdf 100644 --- a/kernel/smp.c +++ b/kernel/smp.c | |||
@@ -48,10 +48,13 @@ hotplug_cfd(struct notifier_block *nfb, unsigned long action, void *hcpu) | |||
48 | cpu_to_node(cpu))) | 48 | cpu_to_node(cpu))) |
49 | return notifier_from_errno(-ENOMEM); | 49 | return notifier_from_errno(-ENOMEM); |
50 | if (!zalloc_cpumask_var_node(&cfd->cpumask_ipi, GFP_KERNEL, | 50 | if (!zalloc_cpumask_var_node(&cfd->cpumask_ipi, GFP_KERNEL, |
51 | cpu_to_node(cpu))) | 51 | cpu_to_node(cpu))) { |
52 | free_cpumask_var(cfd->cpumask); | ||
52 | return notifier_from_errno(-ENOMEM); | 53 | return notifier_from_errno(-ENOMEM); |
54 | } | ||
53 | cfd->csd = alloc_percpu(struct call_single_data); | 55 | cfd->csd = alloc_percpu(struct call_single_data); |
54 | if (!cfd->csd) { | 56 | if (!cfd->csd) { |
57 | free_cpumask_var(cfd->cpumask_ipi); | ||
55 | free_cpumask_var(cfd->cpumask); | 58 | free_cpumask_var(cfd->cpumask); |
56 | return notifier_from_errno(-ENOMEM); | 59 | return notifier_from_errno(-ENOMEM); |
57 | } | 60 | } |