diff options
Diffstat (limited to 'drivers/oprofile/oprofile_perf.c')
-rw-r--r-- | drivers/oprofile/oprofile_perf.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/oprofile/oprofile_perf.c b/drivers/oprofile/oprofile_perf.c index 6853634c4681..a34137f2e26c 100644 --- a/drivers/oprofile/oprofile_perf.c +++ b/drivers/oprofile/oprofile_perf.c @@ -71,28 +71,28 @@ static void op_perf_setup(void) static int op_create_counter(int cpu, int event) { - int ret = 0; struct perf_event *pevent; - if (!counter_config[event].enabled || (perf_events[cpu][event] != NULL)) - return ret; + if (!counter_config[event].enabled || perf_events[cpu][event]) + return 0; pevent = perf_event_create_kernel_counter(&counter_config[event].attr, cpu, -1, op_overflow_handler); - if (IS_ERR(pevent)) { - ret = PTR_ERR(pevent); - } else if (pevent->state != PERF_EVENT_STATE_ACTIVE) { + if (IS_ERR(pevent)) + return PTR_ERR(pevent); + + 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; - } else { - perf_events[cpu][event] = pevent; + return -EBUSY; } - return ret; + perf_events[cpu][event] = pevent; + + return 0; } static void op_destroy_counter(int cpu, int event) |