drivers/perf: arm_pmu: Fix leak in error path
authorStefan Wahren <stefan.wahren@i2se.com>
Sat, 27 Aug 2016 16:19:49 +0000 (16:19 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 2 Sep 2016 16:17:52 +0000 (17:17 +0100)
In case of a IRQ type mismatch in of_pmu_irq_cfg() the
device node for interrupt affinity isn't freed. So fix this
issue by calling of_node_put().

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Fixes: fa8ad7889d83 ("arm: perf: factor arm_pmu core out to drivers")
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
drivers/perf/arm_pmu.c

index c494613c1909e16b88f06c0270bee1425239e5f3..1b48bf0a6780bd758397d720c71fbc22cc92726d 100644 (file)
@@ -925,6 +925,7 @@ static int of_pmu_irq_cfg(struct arm_pmu *pmu)
                        if (i > 0 && spi != using_spi) {
                                pr_err("PPI/SPI IRQ type mismatch for %s!\n",
                                        dn->name);
+                               of_node_put(dn);
                                kfree(irqs);
                                return -EINVAL;
                        }