SyS_perf_event_open() calls get_online_cpus() and eventually invokes
swevent_hlist_get() which does it again. 

All callchains leading to swevent_hlist_get() originate from
SyS_perf_event_open() so the extra protection is redundant.

Remove it.

Signed-off-by: Thomas Gleixner <[email protected]>
Cc: Peter Zijlstra <[email protected]>
---
 kernel/events/core.c |    5 -----
 1 file changed, 5 deletions(-)

--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -7592,7 +7592,6 @@ static int swevent_hlist_get(void)
 {
        int err, cpu, failed_cpu;
 
-       get_online_cpus();
        for_each_possible_cpu(cpu) {
                err = swevent_hlist_get_cpu(cpu);
                if (err) {
@@ -7600,8 +7599,6 @@ static int swevent_hlist_get(void)
                        goto fail;
                }
        }
-       put_online_cpus();
-
        return 0;
 fail:
        for_each_possible_cpu(cpu) {
@@ -7609,8 +7606,6 @@ static int swevent_hlist_get(void)
                        break;
                swevent_hlist_put_cpu(cpu);
        }
-
-       put_online_cpus();
        return err;
 }
 

Reply via email to