diff options
author | Ingo Molnar <mingo@kernel.org> | 2014-02-27 06:41:17 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-02-27 06:41:17 -0500 |
commit | ff5a7088f0f04dd246e514f898cab0c863c3598d (patch) | |
tree | 68a8f588e60fba05ee54b74b32a3269a72d130b9 /kernel/events | |
parent | 7e74efcf76c16f851df5c838c143c4a1865ea9fa (diff) | |
parent | e3703f8cdfcf39c25c4338c3ad8e68891cca3731 (diff) |
Merge branch 'perf/urgent' into perf/core
Merge the latest fixes before queueing up new changes.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/events')
-rw-r--r-- | kernel/events/core.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c index 45e5543e2a1e..fa990061aa6c 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c | |||
@@ -7875,14 +7875,14 @@ static void perf_pmu_rotate_stop(struct pmu *pmu) | |||
7875 | static void __perf_event_exit_context(void *__info) | 7875 | static void __perf_event_exit_context(void *__info) |
7876 | { | 7876 | { |
7877 | struct perf_event_context *ctx = __info; | 7877 | struct perf_event_context *ctx = __info; |
7878 | struct perf_event *event, *tmp; | 7878 | struct perf_event *event; |
7879 | 7879 | ||
7880 | perf_pmu_rotate_stop(ctx->pmu); | 7880 | perf_pmu_rotate_stop(ctx->pmu); |
7881 | 7881 | ||
7882 | list_for_each_entry_safe(event, tmp, &ctx->pinned_groups, group_entry) | 7882 | rcu_read_lock(); |
7883 | __perf_remove_from_context(event); | 7883 | list_for_each_entry_rcu(event, &ctx->event_list, event_entry) |
7884 | list_for_each_entry_safe(event, tmp, &ctx->flexible_groups, group_entry) | ||
7885 | __perf_remove_from_context(event); | 7884 | __perf_remove_from_context(event); |
7885 | rcu_read_unlock(); | ||
7886 | } | 7886 | } |
7887 | 7887 | ||
7888 | static void perf_event_exit_cpu_context(int cpu) | 7888 | static void perf_event_exit_cpu_context(int cpu) |
@@ -7906,11 +7906,11 @@ static void perf_event_exit_cpu(int cpu) | |||
7906 | { | 7906 | { |
7907 | struct swevent_htable *swhash = &per_cpu(swevent_htable, cpu); | 7907 | struct swevent_htable *swhash = &per_cpu(swevent_htable, cpu); |
7908 | 7908 | ||
7909 | perf_event_exit_cpu_context(cpu); | ||
7910 | |||
7909 | mutex_lock(&swhash->hlist_mutex); | 7911 | mutex_lock(&swhash->hlist_mutex); |
7910 | swevent_hlist_release(swhash); | 7912 | swevent_hlist_release(swhash); |
7911 | mutex_unlock(&swhash->hlist_mutex); | 7913 | mutex_unlock(&swhash->hlist_mutex); |
7912 | |||
7913 | perf_event_exit_cpu_context(cpu); | ||
7914 | } | 7914 | } |
7915 | #else | 7915 | #else |
7916 | static inline void perf_event_exit_cpu(int cpu) { } | 7916 | static inline void perf_event_exit_cpu(int cpu) { } |