From 8dc3d65445ad866a9c4787f6da2e7ed26814f39b Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Sun, 17 Oct 2010 12:15:00 +0200 Subject: [PATCH] --- yaml --- r: 211946 b: refs/heads/master c: ebf31f502492527e2b6b5e5cf85a4ebc7fc8a52e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/linux/jump_label.h | 10 ++++++++++ trunk/include/linux/perf_event.h | 12 ++---------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 08e77cec8e39..fd1019635c5b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7e54a5a0b655734326dc78c2b5efc1eb35497bb6 +refs/heads/master: ebf31f502492527e2b6b5e5cf85a4ebc7fc8a52e diff --git a/trunk/include/linux/jump_label.h b/trunk/include/linux/jump_label.h index 81be4962b7a1..b67cb180e6e9 100644 --- a/trunk/include/linux/jump_label.h +++ b/trunk/include/linux/jump_label.h @@ -61,4 +61,14 @@ static inline int jump_label_text_reserved(void *start, void *end) #endif +#define COND_STMT(key, stmt) \ +do { \ + __label__ jl_enabled; \ + JUMP_LABEL(key, jl_enabled); \ + if (0) { \ +jl_enabled: \ + stmt; \ + } \ +} while (0) + #endif diff --git a/trunk/include/linux/perf_event.h b/trunk/include/linux/perf_event.h index 3b80cbf509ef..057bf22a8323 100644 --- a/trunk/include/linux/perf_event.h +++ b/trunk/include/linux/perf_event.h @@ -903,21 +903,13 @@ extern atomic_t perf_task_events; static inline void perf_event_task_sched_in(struct task_struct *task) { - JUMP_LABEL(&perf_task_events, have_events); - return; - -have_events: - __perf_event_task_sched_in(task); + COND_STMT(&perf_task_events, __perf_event_task_sched_in(task)); } static inline void perf_event_task_sched_out(struct task_struct *task, struct task_struct *next) { - JUMP_LABEL(&perf_task_events, have_events); - return; - -have_events: - __perf_event_task_sched_out(task, next); + COND_STMT(&perf_task_events, __perf_event_task_sched_out(task, next)); } extern int perf_event_init_task(struct task_struct *child);