summaryrefslogtreecommitdiffstats
path: root/net/iucv
diff options
context:
space:
mode:
authorAkinobu Mita <akinobu.mita@gmail.com>2008-07-15 02:09:53 -0700
committerDavid S. Miller <davem@davemloft.net>2008-07-15 02:09:53 -0700
commitd0236f8f8223ad841f461ea3a635d452d194806b (patch)
treee708af936e3ba5237ae5cbfdcc44368f20a0980f /net/iucv
parent0b57664cf2393bc1eff594ff7e5ff26533843fe6 (diff)
downloadlinux-d0236f8f8223ad841f461ea3a635d452d194806b.tar.gz
linux-d0236f8f8223ad841f461ea3a635d452d194806b.tar.bz2
linux-d0236f8f8223ad841f461ea3a635d452d194806b.zip
iucv: fix memory leak in cpu hotplug error path.
Fix memory leak in error path in CPU_UP_PREPARE notifier. Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/iucv')
-rw-r--r--net/iucv/iucv.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c
index 531a206ce7a6..d8e0635aace0 100644
--- a/net/iucv/iucv.c
+++ b/net/iucv/iucv.c
@@ -567,8 +567,11 @@ static int __cpuinit iucv_cpu_notify(struct notifier_block *self,
return NOTIFY_BAD;
iucv_param[cpu] = kmalloc_node(sizeof(union iucv_param),
GFP_KERNEL|GFP_DMA, cpu_to_node(cpu));
- if (!iucv_param[cpu])
+ if (!iucv_param[cpu]) {
+ kfree(iucv_irq_data[cpu]);
+ iucv_irq_data[cpu] = NULL;
return NOTIFY_BAD;
+ }
break;
case CPU_UP_CANCELED:
case CPU_UP_CANCELED_FROZEN: