oprofile, ARM: Rework op_create_counter()
[linux-2.6.git] / drivers / oprofile / oprofile_perf.c
index 6853634..a34137f 100644 (file)
@@ -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)