oprofile, ARM: Release resources on failure
authorRobert Richter <robert.richter@amd.com>
Wed, 29 Sep 2010 14:52:25 +0000 (16:52 +0200)
committerRobert Richter <robert.richter@amd.com>
Mon, 11 Oct 2010 17:27:10 +0000 (19:27 +0200)
This patch fixes a resource leak on failure, where the
oprofilefs and some counters may not released properly.

Signed-off-by: Robert Richter <robert.richter@amd.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: <stable@kernel.org> # .35.x
LKML-Reference: <20100929145225.GJ13563@erda.amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
drivers/oprofile/oprofile_perf.c

index ebb40cb874742731a7bb7935e102dbc4724b0fc3..f3d3df229a43896dc9a279b4b5f51de69d7d831e 100644 (file)
@@ -84,6 +84,7 @@ static int op_create_counter(int cpu, int event)
        if (IS_ERR(pevent)) {
                ret = PTR_ERR(pevent);
        } else if (pevent->state != PERF_EVENT_STATE_ACTIVE) {
+               perf_event_release_kernel(pevent);
                pr_warning("oprofile: failed to enable event %d "
                                "on CPU %d\n", event, cpu);
                ret = -EBUSY;