Messages in this thread Patch in this message | | | Date | Tue, 21 Jun 2011 15:18:57 GMT | From | "tip-bot for " <> | Subject | [tip:x86/uv] x86, UV: Correct failed topology memory leak |
| |
Commit-ID: bbd270e6f45a5ca30e1d3b6133c516a9dc9dd6c0 Gitweb: http://git.kernel.org/tip/bbd270e6f45a5ca30e1d3b6133c516a9dc9dd6c0 Author: cpw@sgi.com <cpw@sgi.com> AuthorDate: Tue, 21 Jun 2011 07:21:32 -0500 Committer: Ingo Molnar <mingo@elte.hu> 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@sgi.com> Link: http://lkml.kernel.org/r/20110621122242.981533045@sgi.com Signed-off-by: Ingo Molnar <mingo@elte.hu> --- 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; } /*
| |