Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932347AbbERLCw (ORCPT ); Mon, 18 May 2015 07:02:52 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:51454 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753412AbbERLCp (ORCPT ); Mon, 18 May 2015 07:02:45 -0400 From: Colin King To: Peter Zijlstra , Paul Mackerras , Ingo Molnar , Arnaldo Carvalho de Melo , Will Deacon , Russell King , linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH][V2] ARM: 8351/1: perf: fix memory leak on return Date: Mon, 18 May 2015 12:00:36 +0100 Message-Id: <1431946836-11243-1-git-send-email-colin.king@canonical.com> X-Mailer: git-send-email 2.1.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1702 Lines: 52 From: Colin Ian King Recent commit 3b8786ff7a1b31645ae2c26a2ec32dbd42ac1094 ("ARM: 8352/1: perf: Fix the pmu node name in warning message") introduced a memory leak of irqs on the "Don't bother with PPIs" return path. This was picked up by static analysis by cppcheck: [arch/arm/kernel/perf_event_cpu.c:315]: (error) Memory leak: irqs Perform allocation of irqs after getting the irq hence removing need to clean up an allocation on the PPI affine return path. Signed-off-by: Colin Ian King --- arch/arm/kernel/perf_event_cpu.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/arm/kernel/perf_event_cpu.c b/arch/arm/kernel/perf_event_cpu.c index 213919b..a7099ee 100644 --- a/arch/arm/kernel/perf_event_cpu.c +++ b/arch/arm/kernel/perf_event_cpu.c @@ -303,17 +303,17 @@ static int probe_current_pmu(struct arm_pmu *pmu) static int of_pmu_irq_cfg(struct platform_device *pdev) { - int i, irq; - int *irqs = kcalloc(pdev->num_resources, sizeof(*irqs), GFP_KERNEL); - - if (!irqs) - return -ENOMEM; + int i, irq, *irqs; /* Don't bother with PPIs; they're already affine */ irq = platform_get_irq(pdev, 0); if (irq >= 0 && irq_is_percpu(irq)) return 0; + irqs = kcalloc(pdev->num_resources, sizeof(*irqs), GFP_KERNEL); + if (!irqs) + return -ENOMEM; + for (i = 0; i < pdev->num_resources; ++i) { struct device_node *dn; int cpu; -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/