Эх сурвалжийг харах

oprofile, ARM: Release resources on failure

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>
Robert Richter 14 жил өмнө
parent
commit
81771974ae

+ 1 - 0
drivers/oprofile/oprofile_perf.c

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