sparc: kernel/sbus.c: fix memory leakage
The variable iommu and strbuf are not freed properly if it goes to error. Signed-off-by: Cong Ding <dinggnu@gmail.com> Reviewed-by: Richard Mortimer <richm@oldelvet.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
9a9284153d
commit
04cef49e84
@@ -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)
|
|||||||
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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user