Commit 04cef49e authored by Cong Ding's avatar Cong Ding Committed by David S. Miller

sparc: kernel/sbus.c: fix memory leakage

The variable iommu and strbuf are not freed properly if it goes to error.
Signed-off-by: default avatarCong Ding <dinggnu@gmail.com>
Reviewed-by: default avatarRichard Mortimer <richm@oldelvet.org.uk>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9a928415
...@@ -554,10 +554,8 @@ static void __init sbus_iommu_init(struct platform_device *op) ...@@ -554,10 +554,8 @@ static void __init sbus_iommu_init(struct platform_device *op)
regs = pr->phys_addr; regs = pr->phys_addr;
iommu = kzalloc(sizeof(*iommu), GFP_ATOMIC); iommu = kzalloc(sizeof(*iommu), GFP_ATOMIC);
if (!iommu)
goto fatal_memory_error;
strbuf = kzalloc(sizeof(*strbuf), GFP_ATOMIC); strbuf = kzalloc(sizeof(*strbuf), GFP_ATOMIC);
if (!strbuf) if (!iommu || !strbuf)
goto fatal_memory_error; goto fatal_memory_error;
op->dev.archdata.iommu = iommu; op->dev.archdata.iommu = iommu;
...@@ -656,6 +654,8 @@ static void __init sbus_iommu_init(struct platform_device *op) ...@@ -656,6 +654,8 @@ static void __init sbus_iommu_init(struct platform_device *op)
return; return;
fatal_memory_error: fatal_memory_error:
kfree(iommu);
kfree(strbuf);
prom_printf("sbus_iommu_init: Fatal memory allocation error.\n"); prom_printf("sbus_iommu_init: Fatal memory allocation error.\n");
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment