From d9470adbd5db898fa15b5c208e9e93e7ac9130ef Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Sat, 9 Jan 2010 21:05:28 +0100 Subject: [PATCH] --- yaml --- r: 182380 b: refs/heads/master c: e286417378b4f9ce6e473b556193465ab22e12ab h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/perf_event.c | 17 ++++------------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/[refs] b/[refs] index fc9b71cacad5..c01293566b37 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5908cdc85eb30f8d07f2cb11d4a62334d7229048 +refs/heads/master: e286417378b4f9ce6e473b556193465ab22e12ab diff --git a/trunk/kernel/perf_event.c b/trunk/kernel/perf_event.c index c9f8a757649d..bbebe2832639 100644 --- a/trunk/kernel/perf_event.c +++ b/trunk/kernel/perf_event.c @@ -1454,25 +1454,16 @@ static void perf_ctx_adjust_freq(struct perf_event_context *ctx) */ static void rotate_ctx(struct perf_event_context *ctx) { - struct perf_event *event; - if (!ctx->nr_events) return; raw_spin_lock(&ctx->lock); - /* - * Rotate the first entry last (works just fine for group events too): - */ + + /* Rotate the first entry last of non-pinned groups */ perf_disable(); - list_for_each_entry(event, &ctx->pinned_groups, group_entry) { - list_move_tail(&event->group_entry, &ctx->pinned_groups); - break; - } - list_for_each_entry(event, &ctx->flexible_groups, group_entry) { - list_move_tail(&event->group_entry, &ctx->flexible_groups); - break; - } + list_rotate_left(&ctx->flexible_groups); + perf_enable(); raw_spin_unlock(&ctx->lock);