drivers/perf: arm_pmu: Avoid leaking pmu->irq_affinity on error
authorJulien Grall <julien.grall@arm.com>
Tue, 31 May 2016 11:41:23 +0000 (12:41 +0100)
committerWill Deacon <will.deacon@arm.com>
Fri, 3 Jun 2016 09:16:21 +0000 (10:16 +0100)
pmu->irq_affinity will not be freed if an error occurred within
arm_pmu_device_probe after of_pmu_irq_cfg has been called.

Note that in the case of_pmu_irq_cfg is returning an error,
pmu->irq_affinity will not be set, but it should be NULL as pmu was
kzalloc'd. Therefore the result kfree(NULL) is benign.

Signed-off-by: Julien Grall <julien.grall@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
drivers/perf/arm_pmu.c

index 95614d24675f916eddc0e1ca678b163dd7754b9b..1b8304e1efaa687d71226e62de7c56ac19340bd0 100644 (file)
@@ -1040,6 +1040,7 @@ out_destroy:
 out_free:
        pr_info("%s: failed to register PMU devices!\n",
                of_node_full_name(node));
+       kfree(pmu->irq_affinity);
        kfree(pmu);
        return ret;
 }