Commit-ID: bbd270e6f45a5ca30e1d3b6133c516a9dc9dd6c0 Gitweb: http://git.kernel.org/tip/bbd270e6f45a5ca30e1d3b6133c516a9dc9dd6c0 Author: cpw@xxxxxxx <cpw@xxxxxxx> AuthorDate: Tue, 21 Jun 2011 07:21:32 -0500 Committer: Ingo Molnar <mingo@xxxxxxx> CommitDate: Tue, 21 Jun 2011 14:50:33 +0200 x86, UV: Correct failed topology memory leak Fix a memory leak in init_per_cpu() when the topology check fails. The leak should never occur on deployed systems. It would only occur in an unexpected topology that would make the BAU unuseable as a result. Signed-off-by: Cliff Wickman <cpw@xxxxxxx> Link: http://lkml.kernel.org/r/20110621122242.981533045@xxxxxxx Signed-off-by: Ingo Molnar <mingo@xxxxxxx> --- arch/x86/platform/uv/tlb_uv.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c index 5265842..db8b915 100644 --- a/arch/x86/platform/uv/tlb_uv.c +++ b/arch/x86/platform/uv/tlb_uv.c @@ -1797,15 +1797,20 @@ static int __init init_per_cpu(int nuvhubs, int base_part_pnode) uvhub_mask = kzalloc((nuvhubs+7)/8, GFP_KERNEL); if (get_cpu_topology(base_part_pnode, uvhub_descs, uvhub_mask)) - return 1; + goto fail; if (summarize_uvhub_sockets(nuvhubs, uvhub_descs, uvhub_mask)) - return 1; + goto fail; kfree(uvhub_descs); kfree(uvhub_mask); init_per_cpu_tunables(); return 0; + +fail: + kfree(uvhub_descs); + kfree(uvhub_mask); + return 1; } /* -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html