[PATCH V3 1/9] jump_label: Add for_each_label_entry helper
From: Daniel Bristot de Oliveira
Date: Fri Dec 21 2018 - 05:27:51 EST
Add a helper macro to make jump entry iteration code more readable.
Signed-off-by: Daniel Bristot de Oliveira <bristot@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
Cc: "Steven Rostedt (VMware)" <rostedt@xxxxxxxxxxx>
Cc: Jiri Kosina <jkosina@xxxxxxx>
Cc: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
Cc: "Peter Zijlstra (Intel)" <peterz@xxxxxxxxxxxxx>
Cc: Chris von Recklinghausen <crecklin@xxxxxxxxxx>
Cc: Jason Baron <jbaron@xxxxxxxxxx>
Cc: Scott Wood <swood@xxxxxxxxxx>
Cc: Marcelo Tosatti <mtosatti@xxxxxxxxxx>
Cc: Clark Williams <williams@xxxxxxxxxx>
Cc: x86@xxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
---
include/linux/jump_label.h | 3 +++
kernel/jump_label.c | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h
index 5df6a621e464..c88d903befc0 100644
--- a/include/linux/jump_label.h
+++ b/include/linux/jump_label.h
@@ -231,6 +231,9 @@ extern void static_key_disable(struct static_key *key);
extern void static_key_enable_cpuslocked(struct static_key *key);
extern void static_key_disable_cpuslocked(struct static_key *key);
+#define for_each_label_entry(key, entry, stop) \
+ for (; (entry < stop) && (jump_entry_key(entry) == key); entry++)
+
/*
* We should be using ATOMIC_INIT() for initializing .enabled, but
* the inclusion of atomic.h is problematic for inclusion of jump_label.h
diff --git a/kernel/jump_label.c b/kernel/jump_label.c
index b28028b08d44..65965eb1cf05 100644
--- a/kernel/jump_label.c
+++ b/kernel/jump_label.c
@@ -381,7 +381,7 @@ static void __jump_label_update(struct static_key *key,
struct jump_entry *stop,
bool init)
{
- for (; (entry < stop) && (jump_entry_key(entry) == key); entry++) {
+ for_each_label_entry(key, entry, stop) {
/*
* An entry->code of 0 indicates an entry which has been
* disabled because it was in an init text area.
--
2.17.1