aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/perf_event_mipsxx.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel/perf_event_mipsxx.c')
-rw-r--r--arch/mips/kernel/perf_event_mipsxx.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/arch/mips/kernel/perf_event_mipsxx.c b/arch/mips/kernel/perf_event_mipsxx.c
index b22cc5fd596d..bda4bc9e6988 100644
--- a/arch/mips/kernel/perf_event_mipsxx.c
+++ b/arch/mips/kernel/perf_event_mipsxx.c
@@ -633,11 +633,7 @@ static int mipspmu_event_init(struct perf_event *event)
633 if (err) 633 if (err)
634 return err; 634 return err;
635 635
636 err = __hw_perf_event_init(event); 636 return __hw_perf_event_init(event);
637 if (err)
638 hw_perf_event_destroy(event);
639
640 return err;
641} 637}
642 638
643static struct pmu pmu = { 639static struct pmu pmu = {
@@ -1262,13 +1258,14 @@ static int __hw_perf_event_init(struct perf_event *event)
1262 } 1258 }
1263 1259
1264 err = 0; 1260 err = 0;
1265 if (event->group_leader != event) { 1261 if (event->group_leader != event)
1266 err = validate_group(event); 1262 err = validate_group(event);
1267 if (err)
1268 return -EINVAL;
1269 }
1270 1263
1271 event->destroy = hw_perf_event_destroy; 1264 event->destroy = hw_perf_event_destroy;
1265
1266 if (err)
1267 event->destroy(event);
1268
1272 return err; 1269 return err;
1273} 1270}
1274 1271