[patch V2 20/24] perf/core: Remove redundant get_online_cpus()

Thomas Gleixner
2017-04-18T19:51:23Z

[-- Attachment #1: perf--Remove-redundant-get_online_cpus--.patch --]
[-- Type: text/plain, Size: 958 bytes --]

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 <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
---
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;
}