linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] jump label: constify lookup functions
@ 2014-01-27 19:27 Sasha Levin
  2014-02-12 13:56 ` Sasha Levin
  0 siblings, 1 reply; 4+ messages in thread
From: Sasha Levin @ 2014-01-27 19:27 UTC (permalink / raw)
  To: rostedt; +Cc: linux-arch, linux-kernel, Sasha Levin

Modify the parameters of all the lookup and the bookkeeping functions which
should be const to const.

For example, jump_label_text_reserved() doesn't modify the memory it works on,
it just checks whether there are any jump labels there.

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
---
 arch/arm/include/asm/jump_label.h     |  2 +-
 arch/arm/kernel/jump_label.c          |  6 ++---
 arch/arm64/include/asm/jump_label.h   |  2 +-
 arch/arm64/kernel/jump_label.c        |  6 ++---
 arch/mips/include/asm/jump_label.h    |  2 +-
 arch/mips/kernel/jump_label.c         |  2 +-
 arch/powerpc/include/asm/jump_label.h |  2 +-
 arch/powerpc/kernel/jump_label.c      |  2 +-
 arch/s390/include/asm/jump_label.h    |  2 +-
 arch/s390/kernel/jump_label.c         | 12 ++++-----
 arch/sparc/include/asm/jump_label.h   |  2 +-
 arch/sparc/kernel/jump_label.c        |  2 +-
 arch/x86/include/asm/jump_label.h     |  2 +-
 arch/x86/include/asm/spinlock.h       |  2 +-
 arch/x86/kernel/jump_label.c          |  6 ++---
 include/linux/jump_label.h            | 27 ++++++++++----------
 kernel/jump_label.c                   | 46 ++++++++++++++++++-----------------
 17 files changed, 64 insertions(+), 61 deletions(-)

diff --git a/arch/arm/include/asm/jump_label.h b/arch/arm/include/asm/jump_label.h
index 863c892..c8a5e9f 100644
--- a/arch/arm/include/asm/jump_label.h
+++ b/arch/arm/include/asm/jump_label.h
@@ -14,7 +14,7 @@
 #define JUMP_LABEL_NOP	"nop"
 #endif
 
-static __always_inline bool arch_static_branch(struct static_key *key)
+static __always_inline bool arch_static_branch(const struct static_key *key)
 {
 	asm_volatile_goto("1:\n\t"
 		 JUMP_LABEL_NOP "\n\t"
diff --git a/arch/arm/kernel/jump_label.c b/arch/arm/kernel/jump_label.c
index 4ce4f78..9686fce 100644
--- a/arch/arm/kernel/jump_label.c
+++ b/arch/arm/kernel/jump_label.c
@@ -6,7 +6,7 @@
 
 #ifdef HAVE_JUMP_LABEL
 
-static void __arch_jump_label_transform(struct jump_entry *entry,
+static void __arch_jump_label_transform(const struct jump_entry *entry,
 					enum jump_label_type type,
 					bool is_static)
 {
@@ -24,13 +24,13 @@ static void __arch_jump_label_transform(struct jump_entry *entry,
 		patch_text(addr, insn);
 }
 
-void arch_jump_label_transform(struct jump_entry *entry,
+void arch_jump_label_transform(const struct jump_entry *entry,
 			       enum jump_label_type type)
 {
 	__arch_jump_label_transform(entry, type, false);
 }
 
-void arch_jump_label_transform_static(struct jump_entry *entry,
+void arch_jump_label_transform_static(const struct jump_entry *entry,
 				      enum jump_label_type type)
 {
 	__arch_jump_label_transform(entry, type, true);
diff --git a/arch/arm64/include/asm/jump_label.h b/arch/arm64/include/asm/jump_label.h
index 076a1c7..93ca8b3 100644
--- a/arch/arm64/include/asm/jump_label.h
+++ b/arch/arm64/include/asm/jump_label.h
@@ -25,7 +25,7 @@
 
 #define JUMP_LABEL_NOP_SIZE		AARCH64_INSN_SIZE
 
-static __always_inline bool arch_static_branch(struct static_key *key)
+static __always_inline bool arch_static_branch(const struct static_key *key)
 {
 	asm goto("1: nop\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
diff --git a/arch/arm64/kernel/jump_label.c b/arch/arm64/kernel/jump_label.c
index 263a166..c30e4ba 100644
--- a/arch/arm64/kernel/jump_label.c
+++ b/arch/arm64/kernel/jump_label.c
@@ -22,7 +22,7 @@
 
 #ifdef HAVE_JUMP_LABEL
 
-static void __arch_jump_label_transform(struct jump_entry *entry,
+static void __arch_jump_label_transform(const struct jump_entry *entry,
 					enum jump_label_type type,
 					bool is_static)
 {
@@ -43,13 +43,13 @@ static void __arch_jump_label_transform(struct jump_entry *entry,
 		aarch64_insn_patch_text(&addr, &insn, 1);
 }
 
-void arch_jump_label_transform(struct jump_entry *entry,
+void arch_jump_label_transform(const struct jump_entry *entry,
 			       enum jump_label_type type)
 {
 	__arch_jump_label_transform(entry, type, false);
 }
 
-void arch_jump_label_transform_static(struct jump_entry *entry,
+void arch_jump_label_transform_static(const struct jump_entry *entry,
 				      enum jump_label_type type)
 {
 	__arch_jump_label_transform(entry, type, true);
diff --git a/arch/mips/include/asm/jump_label.h b/arch/mips/include/asm/jump_label.h
index e194f95..0ac7892 100644
--- a/arch/mips/include/asm/jump_label.h
+++ b/arch/mips/include/asm/jump_label.h
@@ -20,7 +20,7 @@
 #define WORD_INSN ".word"
 #endif
 
-static __always_inline bool arch_static_branch(struct static_key *key)
+static __always_inline bool arch_static_branch(const struct static_key *key)
 {
 	asm_volatile_goto("1:\tnop\n\t"
 		"nop\n\t"
diff --git a/arch/mips/kernel/jump_label.c b/arch/mips/kernel/jump_label.c
index 6001610..bfba488 100644
--- a/arch/mips/kernel/jump_label.c
+++ b/arch/mips/kernel/jump_label.c
@@ -20,7 +20,7 @@
 
 #define J_RANGE_MASK ((1ul << 28) - 1)
 
-void arch_jump_label_transform(struct jump_entry *e,
+void arch_jump_label_transform(const struct jump_entry *e,
 			       enum jump_label_type type)
 {
 	union mips_instruction insn;
diff --git a/arch/powerpc/include/asm/jump_label.h b/arch/powerpc/include/asm/jump_label.h
index f016bb6..93eb7c5 100644
--- a/arch/powerpc/include/asm/jump_label.h
+++ b/arch/powerpc/include/asm/jump_label.h
@@ -17,7 +17,7 @@
 #define JUMP_ENTRY_TYPE		stringify_in_c(FTR_ENTRY_LONG)
 #define JUMP_LABEL_NOP_SIZE	4
 
-static __always_inline bool arch_static_branch(struct static_key *key)
+static __always_inline bool arch_static_branch(const struct static_key *key)
 {
 	asm_volatile_goto("1:\n\t"
 		 "nop\n\t"
diff --git a/arch/powerpc/kernel/jump_label.c b/arch/powerpc/kernel/jump_label.c
index a1ed8a8..f9626ec 100644
--- a/arch/powerpc/kernel/jump_label.c
+++ b/arch/powerpc/kernel/jump_label.c
@@ -12,7 +12,7 @@
 #include <asm/code-patching.h>
 
 #ifdef HAVE_JUMP_LABEL
-void arch_jump_label_transform(struct jump_entry *entry,
+void arch_jump_label_transform(const struct jump_entry *entry,
 			       enum jump_label_type type)
 {
 	u32 *addr = (u32 *)(unsigned long)entry->code;
diff --git a/arch/s390/include/asm/jump_label.h b/arch/s390/include/asm/jump_label.h
index 346b1c8..9ee8e1b 100644
--- a/arch/s390/include/asm/jump_label.h
+++ b/arch/s390/include/asm/jump_label.h
@@ -13,7 +13,7 @@
 #define ASM_ALIGN ".balign 4"
 #endif
 
-static __always_inline bool arch_static_branch(struct static_key *key)
+static __always_inline bool arch_static_branch(const struct static_key *key)
 {
 	asm_volatile_goto("0:	brcl 0,0\n"
 		".pushsection __jump_table, \"aw\"\n"
diff --git a/arch/s390/kernel/jump_label.c b/arch/s390/kernel/jump_label.c
index b987ab2..15a7c60 100644
--- a/arch/s390/kernel/jump_label.c
+++ b/arch/s390/kernel/jump_label.c
@@ -18,11 +18,11 @@ struct insn {
 } __packed;
 
 struct insn_args {
-	struct jump_entry *entry;
+	const const struct jump_entry *entry;
 	enum jump_label_type type;
 };
 
-static void __jump_label_transform(struct jump_entry *entry,
+static void __jump_label_transform(const struct jump_entry *entry,
 				   enum jump_label_type type)
 {
 	struct insn insn;
@@ -42,15 +42,15 @@ static void __jump_label_transform(struct jump_entry *entry,
 	WARN_ON_ONCE(rc < 0);
 }
 
-static int __sm_arch_jump_label_transform(void *data)
+static int __sm_arch_jump_label_transform(const void *data)
 {
-	struct insn_args *args = data;
+	const struct insn_args *args = data;
 
 	__jump_label_transform(args->entry, args->type);
 	return 0;
 }
 
-void arch_jump_label_transform(struct jump_entry *entry,
+void arch_jump_label_transform(const struct jump_entry *entry,
 			       enum jump_label_type type)
 {
 	struct insn_args args;
@@ -61,7 +61,7 @@ void arch_jump_label_transform(struct jump_entry *entry,
 	stop_machine(__sm_arch_jump_label_transform, &args, NULL);
 }
 
-void arch_jump_label_transform_static(struct jump_entry *entry,
+void arch_jump_label_transform_static(const struct jump_entry *entry,
 				      enum jump_label_type type)
 {
 	__jump_label_transform(entry, type);
diff --git a/arch/sparc/include/asm/jump_label.h b/arch/sparc/include/asm/jump_label.h
index ec2e2e2..4f1f223 100644
--- a/arch/sparc/include/asm/jump_label.h
+++ b/arch/sparc/include/asm/jump_label.h
@@ -7,7 +7,7 @@
 
 #define JUMP_LABEL_NOP_SIZE 4
 
-static __always_inline bool arch_static_branch(struct static_key *key)
+static __always_inline bool arch_static_branch(const struct static_key *key)
 {
 		asm_volatile_goto("1:\n\t"
 			 "nop\n\t"
diff --git a/arch/sparc/kernel/jump_label.c b/arch/sparc/kernel/jump_label.c
index 48565c1..231c10e 100644
--- a/arch/sparc/kernel/jump_label.c
+++ b/arch/sparc/kernel/jump_label.c
@@ -10,7 +10,7 @@
 
 #ifdef HAVE_JUMP_LABEL
 
-void arch_jump_label_transform(struct jump_entry *entry,
+void arch_jump_label_transform(const struct jump_entry *entry,
 			       enum jump_label_type type)
 {
 	u32 val;
diff --git a/arch/x86/include/asm/jump_label.h b/arch/x86/include/asm/jump_label.h
index 6a2cefb..329ab91 100644
--- a/arch/x86/include/asm/jump_label.h
+++ b/arch/x86/include/asm/jump_label.h
@@ -16,7 +16,7 @@
 # define STATIC_KEY_INIT_NOP GENERIC_NOP5_ATOMIC
 #endif
 
-static __always_inline bool arch_static_branch(struct static_key *key)
+static __always_inline bool arch_static_branch(const struct static_key *key)
 {
 	asm_volatile_goto("1:"
 		".byte " __stringify(STATIC_KEY_INIT_NOP) "\n\t"
diff --git a/arch/x86/include/asm/spinlock.h b/arch/x86/include/asm/spinlock.h
index bf156de..5af9269 100644
--- a/arch/x86/include/asm/spinlock.h
+++ b/arch/x86/include/asm/spinlock.h
@@ -41,7 +41,7 @@
 #define SPIN_THRESHOLD	(1 << 15)
 
 extern struct static_key paravirt_ticketlocks_enabled;
-static __always_inline bool static_key_false(struct static_key *key);
+static __always_inline bool static_key_false(const struct static_key *key);
 
 #ifdef CONFIG_PARAVIRT_SPINLOCKS
 
diff --git a/arch/x86/kernel/jump_label.c b/arch/x86/kernel/jump_label.c
index 26d5a55..fe1cc9d 100644
--- a/arch/x86/kernel/jump_label.c
+++ b/arch/x86/kernel/jump_label.c
@@ -36,7 +36,7 @@ static void bug_at(unsigned char *ip, int line)
 	BUG();
 }
 
-static void __jump_label_transform(struct jump_entry *entry,
+static void __jump_label_transform(const struct jump_entry *entry,
 				   enum jump_label_type type,
 				   void *(*poker)(void *, const void *, size_t),
 				   int init)
@@ -102,7 +102,7 @@ static void __jump_label_transform(struct jump_entry *entry,
 			     (void *)entry->code + JUMP_LABEL_NOP_SIZE);
 }
 
-void arch_jump_label_transform(struct jump_entry *entry,
+void arch_jump_label_transform(const struct jump_entry *entry,
 			       enum jump_label_type type)
 {
 	get_online_cpus();
@@ -118,7 +118,7 @@ static enum {
 	JL_STATE_UPDATE,
 } jlstate __initdata_or_module = JL_STATE_START;
 
-__init_or_module void arch_jump_label_transform_static(struct jump_entry *entry,
+__init_or_module void arch_jump_label_transform_static(const struct jump_entry *entry,
 				      enum jump_label_type type)
 {
 	/*
diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h
index 5c1dfb2..2b2e358 100644
--- a/include/linux/jump_label.h
+++ b/include/linux/jump_label.h
@@ -86,13 +86,14 @@ struct module;
 #define JUMP_LABEL_TYPE_MASK		1UL
 
 static
-inline struct jump_entry *jump_label_get_entries(struct static_key *key)
+inline const struct jump_entry *jump_label_get_entries(
+					const struct static_key *key)
 {
 	return (struct jump_entry *)((unsigned long)key->entries
 						& ~JUMP_LABEL_TYPE_MASK);
 }
 
-static inline bool jump_label_get_branch_default(struct static_key *key)
+static inline bool jump_label_get_branch_default(const struct static_key *key)
 {
 	if (((unsigned long)key->entries & JUMP_LABEL_TYPE_MASK) ==
 	    JUMP_LABEL_TYPE_TRUE_BRANCH)
@@ -100,12 +101,12 @@ static inline bool jump_label_get_branch_default(struct static_key *key)
 	return false;
 }
 
-static __always_inline bool static_key_false(struct static_key *key)
+static __always_inline bool static_key_false(const struct static_key *key)
 {
 	return arch_static_branch(key);
 }
 
-static __always_inline bool static_key_true(struct static_key *key)
+static __always_inline bool static_key_true(const struct static_key *key)
 {
 	return !static_key_false(key);
 }
@@ -116,14 +117,14 @@ extern struct jump_entry __stop___jump_table[];
 extern void jump_label_init(void);
 extern void jump_label_lock(void);
 extern void jump_label_unlock(void);
-extern void arch_jump_label_transform(struct jump_entry *entry,
+extern void arch_jump_label_transform(const struct jump_entry *entry,
 				      enum jump_label_type type);
-extern void arch_jump_label_transform_static(struct jump_entry *entry,
+extern void arch_jump_label_transform_static(const struct jump_entry *entry,
 					     enum jump_label_type type);
-extern int jump_label_text_reserved(void *start, void *end);
+extern int jump_label_text_reserved(const void *start, const void *end);
 extern void static_key_slow_inc(struct static_key *key);
 extern void static_key_slow_dec(struct static_key *key);
-extern void jump_label_apply_nops(struct module *mod);
+extern void jump_label_apply_nops(const struct module *mod);
 
 #define STATIC_KEY_INIT_TRUE ((struct static_key)		\
 	{ .enabled = ATOMIC_INIT(1),				\
@@ -143,14 +144,14 @@ static __always_inline void jump_label_init(void)
 	static_key_initialized = true;
 }
 
-static __always_inline bool static_key_false(struct static_key *key)
+static __always_inline bool static_key_false(const struct static_key *key)
 {
 	if (unlikely(atomic_read(&key->enabled) > 0))
 		return true;
 	return false;
 }
 
-static __always_inline bool static_key_true(struct static_key *key)
+static __always_inline bool static_key_true(const struct static_key *key)
 {
 	if (likely(atomic_read(&key->enabled) > 0))
 		return true;
@@ -169,7 +170,7 @@ static inline void static_key_slow_dec(struct static_key *key)
 	atomic_dec(&key->enabled);
 }
 
-static inline int jump_label_text_reserved(void *start, void *end)
+static inline int jump_label_text_reserved(const void *start, const void *end)
 {
 	return 0;
 }
@@ -177,7 +178,7 @@ static inline int jump_label_text_reserved(void *start, void *end)
 static inline void jump_label_lock(void) {}
 static inline void jump_label_unlock(void) {}
 
-static inline int jump_label_apply_nops(struct module *mod)
+static inline int jump_label_apply_nops(const struct module *mod)
 {
 	return 0;
 }
@@ -192,7 +193,7 @@ static inline int jump_label_apply_nops(struct module *mod)
 #define STATIC_KEY_INIT STATIC_KEY_INIT_FALSE
 #define jump_label_enabled static_key_enabled
 
-static inline bool static_key_enabled(struct static_key *key)
+static inline bool static_key_enabled(const struct static_key *key)
 {
 	return (atomic_read(&key->enabled) > 0);
 }
diff --git a/kernel/jump_label.c b/kernel/jump_label.c
index 9019f15..6879f48 100644
--- a/kernel/jump_label.c
+++ b/kernel/jump_label.c
@@ -54,7 +54,7 @@ jump_label_sort_entries(struct jump_entry *start, struct jump_entry *stop)
 	sort(start, size, sizeof(struct jump_entry), jump_label_cmp, NULL);
 }
 
-static void jump_label_update(struct static_key *key, int enable);
+static void jump_label_update(const struct static_key *key, int enable);
 
 void static_key_slow_inc(struct static_key *key)
 {
@@ -125,7 +125,8 @@ void jump_label_rate_limit(struct static_key_deferred *key,
 }
 EXPORT_SYMBOL_GPL(jump_label_rate_limit);
 
-static int addr_conflict(struct jump_entry *entry, void *start, void *end)
+static int addr_conflict(const struct jump_entry *entry, const void *start,
+		const void *end)
 {
 	if (entry->code <= (unsigned long)end &&
 		entry->code + JUMP_LABEL_NOP_SIZE > (unsigned long)start)
@@ -134,10 +135,11 @@ static int addr_conflict(struct jump_entry *entry, void *start, void *end)
 	return 0;
 }
 
-static int __jump_label_text_reserved(struct jump_entry *iter_start,
-		struct jump_entry *iter_stop, void *start, void *end)
+static int __jump_label_text_reserved(const struct jump_entry *iter_start,
+		const struct jump_entry *iter_stop, const void *start,
+		const void *end)
 {
-	struct jump_entry *iter;
+	const struct jump_entry *iter;
 
 	iter = iter_start;
 	while (iter < iter_stop) {
@@ -155,15 +157,15 @@ static int __jump_label_text_reserved(struct jump_entry *iter_start,
  * running code can override this to make the non-live update case
  * cheaper.
  */
-void __weak __init_or_module arch_jump_label_transform_static(struct jump_entry *entry,
-					    enum jump_label_type type)
+void __weak __init_or_module arch_jump_label_transform_static(
+		const struct jump_entry *entry, enum jump_label_type type)
 {
 	arch_jump_label_transform(entry, type);	
 }
 
-static void __jump_label_update(struct static_key *key,
-				struct jump_entry *entry,
-				struct jump_entry *stop, int enable)
+static void __jump_label_update(const struct static_key *key,
+				const struct jump_entry *entry,
+				const struct jump_entry *stop, int enable)
 {
 	for (; (entry < stop) &&
 	      (entry->key == (jump_label_t)(unsigned long)key);
@@ -178,7 +180,7 @@ static void __jump_label_update(struct static_key *key,
 	}
 }
 
-static enum jump_label_type jump_label_type(struct static_key *key)
+static enum jump_label_type jump_label_type(const struct static_key *key)
 {
 	bool true_branch = jump_label_get_branch_default(key);
 	bool state = static_key_enabled(key);
@@ -228,9 +230,9 @@ struct static_key_mod {
 	struct module *mod;
 };
 
-static int __jump_label_mod_text_reserved(void *start, void *end)
+static int __jump_label_mod_text_reserved(const void *start, const void *end)
 {
-	struct module *mod;
+	const struct module *mod;
 
 	mod = __module_text_address((unsigned long)start);
 	if (!mod)
@@ -243,12 +245,12 @@ static int __jump_label_mod_text_reserved(void *start, void *end)
 				start, end);
 }
 
-static void __jump_label_mod_update(struct static_key *key, int enable)
+static void __jump_label_mod_update(const struct static_key *key, int enable)
 {
-	struct static_key_mod *mod = key->next;
+	const struct static_key_mod *mod = key->next;
 
 	while (mod) {
-		struct module *m = mod->mod;
+		const struct module *m = mod->mod;
 
 		__jump_label_update(key, mod->entries,
 				    m->jump_entries + m->num_jump_entries,
@@ -265,7 +267,7 @@ static void __jump_label_mod_update(struct static_key *key, int enable)
  * loads patch these with arch_get_jump_label_nop(), which is specified by
  * the arch specific jump label code.
  */
-void jump_label_apply_nops(struct module *mod)
+void jump_label_apply_nops(const struct module *mod)
 {
 	struct jump_entry *iter_start = mod->jump_entries;
 	struct jump_entry *iter_stop = iter_start + mod->num_jump_entries;
@@ -425,7 +427,7 @@ early_initcall(jump_label_init_module);
  *
  * returns 1 if there is an overlap, 0 otherwise
  */
-int jump_label_text_reserved(void *start, void *end)
+int jump_label_text_reserved(const void *start, const void *end)
 {
 	int ret = __jump_label_text_reserved(__start___jump_table,
 			__stop___jump_table, start, end);
@@ -439,13 +441,13 @@ int jump_label_text_reserved(void *start, void *end)
 	return ret;
 }
 
-static void jump_label_update(struct static_key *key, int enable)
+static void jump_label_update(const struct static_key *key, int enable)
 {
-	struct jump_entry *stop = __stop___jump_table;
-	struct jump_entry *entry = jump_label_get_entries(key);
+	const struct jump_entry *stop = __stop___jump_table;
+	const struct jump_entry *entry = jump_label_get_entries(key);
 
 #ifdef CONFIG_MODULES
-	struct module *mod = __module_address((unsigned long)key);
+	const struct module *mod = __module_address((unsigned long)key);
 
 	__jump_label_mod_update(key, enable);
 
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] jump label: constify lookup functions
  2014-01-27 19:27 [PATCH] jump label: constify lookup functions Sasha Levin
@ 2014-02-12 13:56 ` Sasha Levin
  2014-03-14 19:40   ` Sasha Levin
  0 siblings, 1 reply; 4+ messages in thread
From: Sasha Levin @ 2014-02-12 13:56 UTC (permalink / raw)
  To: rostedt; +Cc: linux-arch, linux-kernel, Sasha Levin

ping?

On 01/27/2014 02:27 PM, Sasha Levin wrote:
> Modify the parameters of all the lookup and the bookkeeping functions which
> should be const to const.
>
> For example, jump_label_text_reserved() doesn't modify the memory it works on,
> it just checks whether there are any jump labels there.
>
> Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
> ---
>   arch/arm/include/asm/jump_label.h     |  2 +-
>   arch/arm/kernel/jump_label.c          |  6 ++---
>   arch/arm64/include/asm/jump_label.h   |  2 +-
>   arch/arm64/kernel/jump_label.c        |  6 ++---
>   arch/mips/include/asm/jump_label.h    |  2 +-
>   arch/mips/kernel/jump_label.c         |  2 +-
>   arch/powerpc/include/asm/jump_label.h |  2 +-
>   arch/powerpc/kernel/jump_label.c      |  2 +-
>   arch/s390/include/asm/jump_label.h    |  2 +-
>   arch/s390/kernel/jump_label.c         | 12 ++++-----
>   arch/sparc/include/asm/jump_label.h   |  2 +-
>   arch/sparc/kernel/jump_label.c        |  2 +-
>   arch/x86/include/asm/jump_label.h     |  2 +-
>   arch/x86/include/asm/spinlock.h       |  2 +-
>   arch/x86/kernel/jump_label.c          |  6 ++---
>   include/linux/jump_label.h            | 27 ++++++++++----------
>   kernel/jump_label.c                   | 46 ++++++++++++++++++-----------------
>   17 files changed, 64 insertions(+), 61 deletions(-)
>
> diff --git a/arch/arm/include/asm/jump_label.h b/arch/arm/include/asm/jump_label.h
> index 863c892..c8a5e9f 100644
> --- a/arch/arm/include/asm/jump_label.h
> +++ b/arch/arm/include/asm/jump_label.h
> @@ -14,7 +14,7 @@
>   #define JUMP_LABEL_NOP	"nop"
>   #endif
>
> -static __always_inline bool arch_static_branch(struct static_key *key)
> +static __always_inline bool arch_static_branch(const struct static_key *key)
>   {
>   	asm_volatile_goto("1:\n\t"
>   		 JUMP_LABEL_NOP "\n\t"
> diff --git a/arch/arm/kernel/jump_label.c b/arch/arm/kernel/jump_label.c
> index 4ce4f78..9686fce 100644
> --- a/arch/arm/kernel/jump_label.c
> +++ b/arch/arm/kernel/jump_label.c
> @@ -6,7 +6,7 @@
>
>   #ifdef HAVE_JUMP_LABEL
>
> -static void __arch_jump_label_transform(struct jump_entry *entry,
> +static void __arch_jump_label_transform(const struct jump_entry *entry,
>   					enum jump_label_type type,
>   					bool is_static)
>   {
> @@ -24,13 +24,13 @@ static void __arch_jump_label_transform(struct jump_entry *entry,
>   		patch_text(addr, insn);
>   }
>
> -void arch_jump_label_transform(struct jump_entry *entry,
> +void arch_jump_label_transform(const struct jump_entry *entry,
>   			       enum jump_label_type type)
>   {
>   	__arch_jump_label_transform(entry, type, false);
>   }
>
> -void arch_jump_label_transform_static(struct jump_entry *entry,
> +void arch_jump_label_transform_static(const struct jump_entry *entry,
>   				      enum jump_label_type type)
>   {
>   	__arch_jump_label_transform(entry, type, true);
> diff --git a/arch/arm64/include/asm/jump_label.h b/arch/arm64/include/asm/jump_label.h
> index 076a1c7..93ca8b3 100644
> --- a/arch/arm64/include/asm/jump_label.h
> +++ b/arch/arm64/include/asm/jump_label.h
> @@ -25,7 +25,7 @@
>
>   #define JUMP_LABEL_NOP_SIZE		AARCH64_INSN_SIZE
>
> -static __always_inline bool arch_static_branch(struct static_key *key)
> +static __always_inline bool arch_static_branch(const struct static_key *key)
>   {
>   	asm goto("1: nop\n\t"
>   		 ".pushsection __jump_table,  \"aw\"\n\t"
> diff --git a/arch/arm64/kernel/jump_label.c b/arch/arm64/kernel/jump_label.c
> index 263a166..c30e4ba 100644
> --- a/arch/arm64/kernel/jump_label.c
> +++ b/arch/arm64/kernel/jump_label.c
> @@ -22,7 +22,7 @@
>
>   #ifdef HAVE_JUMP_LABEL
>
> -static void __arch_jump_label_transform(struct jump_entry *entry,
> +static void __arch_jump_label_transform(const struct jump_entry *entry,
>   					enum jump_label_type type,
>   					bool is_static)
>   {
> @@ -43,13 +43,13 @@ static void __arch_jump_label_transform(struct jump_entry *entry,
>   		aarch64_insn_patch_text(&addr, &insn, 1);
>   }
>
> -void arch_jump_label_transform(struct jump_entry *entry,
> +void arch_jump_label_transform(const struct jump_entry *entry,
>   			       enum jump_label_type type)
>   {
>   	__arch_jump_label_transform(entry, type, false);
>   }
>
> -void arch_jump_label_transform_static(struct jump_entry *entry,
> +void arch_jump_label_transform_static(const struct jump_entry *entry,
>   				      enum jump_label_type type)
>   {
>   	__arch_jump_label_transform(entry, type, true);
> diff --git a/arch/mips/include/asm/jump_label.h b/arch/mips/include/asm/jump_label.h
> index e194f95..0ac7892 100644
> --- a/arch/mips/include/asm/jump_label.h
> +++ b/arch/mips/include/asm/jump_label.h
> @@ -20,7 +20,7 @@
>   #define WORD_INSN ".word"
>   #endif
>
> -static __always_inline bool arch_static_branch(struct static_key *key)
> +static __always_inline bool arch_static_branch(const struct static_key *key)
>   {
>   	asm_volatile_goto("1:\tnop\n\t"
>   		"nop\n\t"
> diff --git a/arch/mips/kernel/jump_label.c b/arch/mips/kernel/jump_label.c
> index 6001610..bfba488 100644
> --- a/arch/mips/kernel/jump_label.c
> +++ b/arch/mips/kernel/jump_label.c
> @@ -20,7 +20,7 @@
>
>   #define J_RANGE_MASK ((1ul << 28) - 1)
>
> -void arch_jump_label_transform(struct jump_entry *e,
> +void arch_jump_label_transform(const struct jump_entry *e,
>   			       enum jump_label_type type)
>   {
>   	union mips_instruction insn;
> diff --git a/arch/powerpc/include/asm/jump_label.h b/arch/powerpc/include/asm/jump_label.h
> index f016bb6..93eb7c5 100644
> --- a/arch/powerpc/include/asm/jump_label.h
> +++ b/arch/powerpc/include/asm/jump_label.h
> @@ -17,7 +17,7 @@
>   #define JUMP_ENTRY_TYPE		stringify_in_c(FTR_ENTRY_LONG)
>   #define JUMP_LABEL_NOP_SIZE	4
>
> -static __always_inline bool arch_static_branch(struct static_key *key)
> +static __always_inline bool arch_static_branch(const struct static_key *key)
>   {
>   	asm_volatile_goto("1:\n\t"
>   		 "nop\n\t"
> diff --git a/arch/powerpc/kernel/jump_label.c b/arch/powerpc/kernel/jump_label.c
> index a1ed8a8..f9626ec 100644
> --- a/arch/powerpc/kernel/jump_label.c
> +++ b/arch/powerpc/kernel/jump_label.c
> @@ -12,7 +12,7 @@
>   #include <asm/code-patching.h>
>
>   #ifdef HAVE_JUMP_LABEL
> -void arch_jump_label_transform(struct jump_entry *entry,
> +void arch_jump_label_transform(const struct jump_entry *entry,
>   			       enum jump_label_type type)
>   {
>   	u32 *addr = (u32 *)(unsigned long)entry->code;
> diff --git a/arch/s390/include/asm/jump_label.h b/arch/s390/include/asm/jump_label.h
> index 346b1c8..9ee8e1b 100644
> --- a/arch/s390/include/asm/jump_label.h
> +++ b/arch/s390/include/asm/jump_label.h
> @@ -13,7 +13,7 @@
>   #define ASM_ALIGN ".balign 4"
>   #endif
>
> -static __always_inline bool arch_static_branch(struct static_key *key)
> +static __always_inline bool arch_static_branch(const struct static_key *key)
>   {
>   	asm_volatile_goto("0:	brcl 0,0\n"
>   		".pushsection __jump_table, \"aw\"\n"
> diff --git a/arch/s390/kernel/jump_label.c b/arch/s390/kernel/jump_label.c
> index b987ab2..15a7c60 100644
> --- a/arch/s390/kernel/jump_label.c
> +++ b/arch/s390/kernel/jump_label.c
> @@ -18,11 +18,11 @@ struct insn {
>   } __packed;
>
>   struct insn_args {
> -	struct jump_entry *entry;
> +	const const struct jump_entry *entry;
>   	enum jump_label_type type;
>   };
>
> -static void __jump_label_transform(struct jump_entry *entry,
> +static void __jump_label_transform(const struct jump_entry *entry,
>   				   enum jump_label_type type)
>   {
>   	struct insn insn;
> @@ -42,15 +42,15 @@ static void __jump_label_transform(struct jump_entry *entry,
>   	WARN_ON_ONCE(rc < 0);
>   }
>
> -static int __sm_arch_jump_label_transform(void *data)
> +static int __sm_arch_jump_label_transform(const void *data)
>   {
> -	struct insn_args *args = data;
> +	const struct insn_args *args = data;
>
>   	__jump_label_transform(args->entry, args->type);
>   	return 0;
>   }
>
> -void arch_jump_label_transform(struct jump_entry *entry,
> +void arch_jump_label_transform(const struct jump_entry *entry,
>   			       enum jump_label_type type)
>   {
>   	struct insn_args args;
> @@ -61,7 +61,7 @@ void arch_jump_label_transform(struct jump_entry *entry,
>   	stop_machine(__sm_arch_jump_label_transform, &args, NULL);
>   }
>
> -void arch_jump_label_transform_static(struct jump_entry *entry,
> +void arch_jump_label_transform_static(const struct jump_entry *entry,
>   				      enum jump_label_type type)
>   {
>   	__jump_label_transform(entry, type);
> diff --git a/arch/sparc/include/asm/jump_label.h b/arch/sparc/include/asm/jump_label.h
> index ec2e2e2..4f1f223 100644
> --- a/arch/sparc/include/asm/jump_label.h
> +++ b/arch/sparc/include/asm/jump_label.h
> @@ -7,7 +7,7 @@
>
>   #define JUMP_LABEL_NOP_SIZE 4
>
> -static __always_inline bool arch_static_branch(struct static_key *key)
> +static __always_inline bool arch_static_branch(const struct static_key *key)
>   {
>   		asm_volatile_goto("1:\n\t"
>   			 "nop\n\t"
> diff --git a/arch/sparc/kernel/jump_label.c b/arch/sparc/kernel/jump_label.c
> index 48565c1..231c10e 100644
> --- a/arch/sparc/kernel/jump_label.c
> +++ b/arch/sparc/kernel/jump_label.c
> @@ -10,7 +10,7 @@
>
>   #ifdef HAVE_JUMP_LABEL
>
> -void arch_jump_label_transform(struct jump_entry *entry,
> +void arch_jump_label_transform(const struct jump_entry *entry,
>   			       enum jump_label_type type)
>   {
>   	u32 val;
> diff --git a/arch/x86/include/asm/jump_label.h b/arch/x86/include/asm/jump_label.h
> index 6a2cefb..329ab91 100644
> --- a/arch/x86/include/asm/jump_label.h
> +++ b/arch/x86/include/asm/jump_label.h
> @@ -16,7 +16,7 @@
>   # define STATIC_KEY_INIT_NOP GENERIC_NOP5_ATOMIC
>   #endif
>
> -static __always_inline bool arch_static_branch(struct static_key *key)
> +static __always_inline bool arch_static_branch(const struct static_key *key)
>   {
>   	asm_volatile_goto("1:"
>   		".byte " __stringify(STATIC_KEY_INIT_NOP) "\n\t"
> diff --git a/arch/x86/include/asm/spinlock.h b/arch/x86/include/asm/spinlock.h
> index bf156de..5af9269 100644
> --- a/arch/x86/include/asm/spinlock.h
> +++ b/arch/x86/include/asm/spinlock.h
> @@ -41,7 +41,7 @@
>   #define SPIN_THRESHOLD	(1 << 15)
>
>   extern struct static_key paravirt_ticketlocks_enabled;
> -static __always_inline bool static_key_false(struct static_key *key);
> +static __always_inline bool static_key_false(const struct static_key *key);
>
>   #ifdef CONFIG_PARAVIRT_SPINLOCKS
>
> diff --git a/arch/x86/kernel/jump_label.c b/arch/x86/kernel/jump_label.c
> index 26d5a55..fe1cc9d 100644
> --- a/arch/x86/kernel/jump_label.c
> +++ b/arch/x86/kernel/jump_label.c
> @@ -36,7 +36,7 @@ static void bug_at(unsigned char *ip, int line)
>   	BUG();
>   }
>
> -static void __jump_label_transform(struct jump_entry *entry,
> +static void __jump_label_transform(const struct jump_entry *entry,
>   				   enum jump_label_type type,
>   				   void *(*poker)(void *, const void *, size_t),
>   				   int init)
> @@ -102,7 +102,7 @@ static void __jump_label_transform(struct jump_entry *entry,
>   			     (void *)entry->code + JUMP_LABEL_NOP_SIZE);
>   }
>
> -void arch_jump_label_transform(struct jump_entry *entry,
> +void arch_jump_label_transform(const struct jump_entry *entry,
>   			       enum jump_label_type type)
>   {
>   	get_online_cpus();
> @@ -118,7 +118,7 @@ static enum {
>   	JL_STATE_UPDATE,
>   } jlstate __initdata_or_module = JL_STATE_START;
>
> -__init_or_module void arch_jump_label_transform_static(struct jump_entry *entry,
> +__init_or_module void arch_jump_label_transform_static(const struct jump_entry *entry,
>   				      enum jump_label_type type)
>   {
>   	/*
> diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h
> index 5c1dfb2..2b2e358 100644
> --- a/include/linux/jump_label.h
> +++ b/include/linux/jump_label.h
> @@ -86,13 +86,14 @@ struct module;
>   #define JUMP_LABEL_TYPE_MASK		1UL
>
>   static
> -inline struct jump_entry *jump_label_get_entries(struct static_key *key)
> +inline const struct jump_entry *jump_label_get_entries(
> +					const struct static_key *key)
>   {
>   	return (struct jump_entry *)((unsigned long)key->entries
>   						& ~JUMP_LABEL_TYPE_MASK);
>   }
>
> -static inline bool jump_label_get_branch_default(struct static_key *key)
> +static inline bool jump_label_get_branch_default(const struct static_key *key)
>   {
>   	if (((unsigned long)key->entries & JUMP_LABEL_TYPE_MASK) ==
>   	    JUMP_LABEL_TYPE_TRUE_BRANCH)
> @@ -100,12 +101,12 @@ static inline bool jump_label_get_branch_default(struct static_key *key)
>   	return false;
>   }
>
> -static __always_inline bool static_key_false(struct static_key *key)
> +static __always_inline bool static_key_false(const struct static_key *key)
>   {
>   	return arch_static_branch(key);
>   }
>
> -static __always_inline bool static_key_true(struct static_key *key)
> +static __always_inline bool static_key_true(const struct static_key *key)
>   {
>   	return !static_key_false(key);
>   }
> @@ -116,14 +117,14 @@ extern struct jump_entry __stop___jump_table[];
>   extern void jump_label_init(void);
>   extern void jump_label_lock(void);
>   extern void jump_label_unlock(void);
> -extern void arch_jump_label_transform(struct jump_entry *entry,
> +extern void arch_jump_label_transform(const struct jump_entry *entry,
>   				      enum jump_label_type type);
> -extern void arch_jump_label_transform_static(struct jump_entry *entry,
> +extern void arch_jump_label_transform_static(const struct jump_entry *entry,
>   					     enum jump_label_type type);
> -extern int jump_label_text_reserved(void *start, void *end);
> +extern int jump_label_text_reserved(const void *start, const void *end);
>   extern void static_key_slow_inc(struct static_key *key);
>   extern void static_key_slow_dec(struct static_key *key);
> -extern void jump_label_apply_nops(struct module *mod);
> +extern void jump_label_apply_nops(const struct module *mod);
>
>   #define STATIC_KEY_INIT_TRUE ((struct static_key)		\
>   	{ .enabled = ATOMIC_INIT(1),				\
> @@ -143,14 +144,14 @@ static __always_inline void jump_label_init(void)
>   	static_key_initialized = true;
>   }
>
> -static __always_inline bool static_key_false(struct static_key *key)
> +static __always_inline bool static_key_false(const struct static_key *key)
>   {
>   	if (unlikely(atomic_read(&key->enabled) > 0))
>   		return true;
>   	return false;
>   }
>
> -static __always_inline bool static_key_true(struct static_key *key)
> +static __always_inline bool static_key_true(const struct static_key *key)
>   {
>   	if (likely(atomic_read(&key->enabled) > 0))
>   		return true;
> @@ -169,7 +170,7 @@ static inline void static_key_slow_dec(struct static_key *key)
>   	atomic_dec(&key->enabled);
>   }
>
> -static inline int jump_label_text_reserved(void *start, void *end)
> +static inline int jump_label_text_reserved(const void *start, const void *end)
>   {
>   	return 0;
>   }
> @@ -177,7 +178,7 @@ static inline int jump_label_text_reserved(void *start, void *end)
>   static inline void jump_label_lock(void) {}
>   static inline void jump_label_unlock(void) {}
>
> -static inline int jump_label_apply_nops(struct module *mod)
> +static inline int jump_label_apply_nops(const struct module *mod)
>   {
>   	return 0;
>   }
> @@ -192,7 +193,7 @@ static inline int jump_label_apply_nops(struct module *mod)
>   #define STATIC_KEY_INIT STATIC_KEY_INIT_FALSE
>   #define jump_label_enabled static_key_enabled
>
> -static inline bool static_key_enabled(struct static_key *key)
> +static inline bool static_key_enabled(const struct static_key *key)
>   {
>   	return (atomic_read(&key->enabled) > 0);
>   }
> diff --git a/kernel/jump_label.c b/kernel/jump_label.c
> index 9019f15..6879f48 100644
> --- a/kernel/jump_label.c
> +++ b/kernel/jump_label.c
> @@ -54,7 +54,7 @@ jump_label_sort_entries(struct jump_entry *start, struct jump_entry *stop)
>   	sort(start, size, sizeof(struct jump_entry), jump_label_cmp, NULL);
>   }
>
> -static void jump_label_update(struct static_key *key, int enable);
> +static void jump_label_update(const struct static_key *key, int enable);
>
>   void static_key_slow_inc(struct static_key *key)
>   {
> @@ -125,7 +125,8 @@ void jump_label_rate_limit(struct static_key_deferred *key,
>   }
>   EXPORT_SYMBOL_GPL(jump_label_rate_limit);
>
> -static int addr_conflict(struct jump_entry *entry, void *start, void *end)
> +static int addr_conflict(const struct jump_entry *entry, const void *start,
> +		const void *end)
>   {
>   	if (entry->code <= (unsigned long)end &&
>   		entry->code + JUMP_LABEL_NOP_SIZE > (unsigned long)start)
> @@ -134,10 +135,11 @@ static int addr_conflict(struct jump_entry *entry, void *start, void *end)
>   	return 0;
>   }
>
> -static int __jump_label_text_reserved(struct jump_entry *iter_start,
> -		struct jump_entry *iter_stop, void *start, void *end)
> +static int __jump_label_text_reserved(const struct jump_entry *iter_start,
> +		const struct jump_entry *iter_stop, const void *start,
> +		const void *end)
>   {
> -	struct jump_entry *iter;
> +	const struct jump_entry *iter;
>
>   	iter = iter_start;
>   	while (iter < iter_stop) {
> @@ -155,15 +157,15 @@ static int __jump_label_text_reserved(struct jump_entry *iter_start,
>    * running code can override this to make the non-live update case
>    * cheaper.
>    */
> -void __weak __init_or_module arch_jump_label_transform_static(struct jump_entry *entry,
> -					    enum jump_label_type type)
> +void __weak __init_or_module arch_jump_label_transform_static(
> +		const struct jump_entry *entry, enum jump_label_type type)
>   {
>   	arch_jump_label_transform(entry, type);	
>   }
>
> -static void __jump_label_update(struct static_key *key,
> -				struct jump_entry *entry,
> -				struct jump_entry *stop, int enable)
> +static void __jump_label_update(const struct static_key *key,
> +				const struct jump_entry *entry,
> +				const struct jump_entry *stop, int enable)
>   {
>   	for (; (entry < stop) &&
>   	      (entry->key == (jump_label_t)(unsigned long)key);
> @@ -178,7 +180,7 @@ static void __jump_label_update(struct static_key *key,
>   	}
>   }
>
> -static enum jump_label_type jump_label_type(struct static_key *key)
> +static enum jump_label_type jump_label_type(const struct static_key *key)
>   {
>   	bool true_branch = jump_label_get_branch_default(key);
>   	bool state = static_key_enabled(key);
> @@ -228,9 +230,9 @@ struct static_key_mod {
>   	struct module *mod;
>   };
>
> -static int __jump_label_mod_text_reserved(void *start, void *end)
> +static int __jump_label_mod_text_reserved(const void *start, const void *end)
>   {
> -	struct module *mod;
> +	const struct module *mod;
>
>   	mod = __module_text_address((unsigned long)start);
>   	if (!mod)
> @@ -243,12 +245,12 @@ static int __jump_label_mod_text_reserved(void *start, void *end)
>   				start, end);
>   }
>
> -static void __jump_label_mod_update(struct static_key *key, int enable)
> +static void __jump_label_mod_update(const struct static_key *key, int enable)
>   {
> -	struct static_key_mod *mod = key->next;
> +	const struct static_key_mod *mod = key->next;
>
>   	while (mod) {
> -		struct module *m = mod->mod;
> +		const struct module *m = mod->mod;
>
>   		__jump_label_update(key, mod->entries,
>   				    m->jump_entries + m->num_jump_entries,
> @@ -265,7 +267,7 @@ static void __jump_label_mod_update(struct static_key *key, int enable)
>    * loads patch these with arch_get_jump_label_nop(), which is specified by
>    * the arch specific jump label code.
>    */
> -void jump_label_apply_nops(struct module *mod)
> +void jump_label_apply_nops(const struct module *mod)
>   {
>   	struct jump_entry *iter_start = mod->jump_entries;
>   	struct jump_entry *iter_stop = iter_start + mod->num_jump_entries;
> @@ -425,7 +427,7 @@ early_initcall(jump_label_init_module);
>    *
>    * returns 1 if there is an overlap, 0 otherwise
>    */
> -int jump_label_text_reserved(void *start, void *end)
> +int jump_label_text_reserved(const void *start, const void *end)
>   {
>   	int ret = __jump_label_text_reserved(__start___jump_table,
>   			__stop___jump_table, start, end);
> @@ -439,13 +441,13 @@ int jump_label_text_reserved(void *start, void *end)
>   	return ret;
>   }
>
> -static void jump_label_update(struct static_key *key, int enable)
> +static void jump_label_update(const struct static_key *key, int enable)
>   {
> -	struct jump_entry *stop = __stop___jump_table;
> -	struct jump_entry *entry = jump_label_get_entries(key);
> +	const struct jump_entry *stop = __stop___jump_table;
> +	const struct jump_entry *entry = jump_label_get_entries(key);
>
>   #ifdef CONFIG_MODULES
> -	struct module *mod = __module_address((unsigned long)key);
> +	const struct module *mod = __module_address((unsigned long)key);
>
>   	__jump_label_mod_update(key, enable);
>
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] jump label: constify lookup functions
  2014-02-12 13:56 ` Sasha Levin
@ 2014-03-14 19:40   ` Sasha Levin
  2014-03-20 17:13     ` Steven Rostedt
  0 siblings, 1 reply; 4+ messages in thread
From: Sasha Levin @ 2014-03-14 19:40 UTC (permalink / raw)
  To: rostedt; +Cc: linux-arch, linux-kernel, Sasha Levin

ping?

On 02/12/2014 08:56 AM, Sasha Levin wrote:
> ping?
>
> On 01/27/2014 02:27 PM, Sasha Levin wrote:
>> Modify the parameters of all the lookup and the bookkeeping functions which
>> should be const to const.
>>
>> For example, jump_label_text_reserved() doesn't modify the memory it works on,
>> it just checks whether there are any jump labels there.
>>
>> Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
>> ---
>>   arch/arm/include/asm/jump_label.h     |  2 +-
>>   arch/arm/kernel/jump_label.c          |  6 ++---
>>   arch/arm64/include/asm/jump_label.h   |  2 +-
>>   arch/arm64/kernel/jump_label.c        |  6 ++---
>>   arch/mips/include/asm/jump_label.h    |  2 +-
>>   arch/mips/kernel/jump_label.c         |  2 +-
>>   arch/powerpc/include/asm/jump_label.h |  2 +-
>>   arch/powerpc/kernel/jump_label.c      |  2 +-
>>   arch/s390/include/asm/jump_label.h    |  2 +-
>>   arch/s390/kernel/jump_label.c         | 12 ++++-----
>>   arch/sparc/include/asm/jump_label.h   |  2 +-
>>   arch/sparc/kernel/jump_label.c        |  2 +-
>>   arch/x86/include/asm/jump_label.h     |  2 +-
>>   arch/x86/include/asm/spinlock.h       |  2 +-
>>   arch/x86/kernel/jump_label.c          |  6 ++---
>>   include/linux/jump_label.h            | 27 ++++++++++----------
>>   kernel/jump_label.c                   | 46 ++++++++++++++++++-----------------
>>   17 files changed, 64 insertions(+), 61 deletions(-)
>>
>> diff --git a/arch/arm/include/asm/jump_label.h b/arch/arm/include/asm/jump_label.h
>> index 863c892..c8a5e9f 100644
>> --- a/arch/arm/include/asm/jump_label.h
>> +++ b/arch/arm/include/asm/jump_label.h
>> @@ -14,7 +14,7 @@
>>   #define JUMP_LABEL_NOP    "nop"
>>   #endif
>>
>> -static __always_inline bool arch_static_branch(struct static_key *key)
>> +static __always_inline bool arch_static_branch(const struct static_key *key)
>>   {
>>       asm_volatile_goto("1:\n\t"
>>            JUMP_LABEL_NOP "\n\t"
>> diff --git a/arch/arm/kernel/jump_label.c b/arch/arm/kernel/jump_label.c
>> index 4ce4f78..9686fce 100644
>> --- a/arch/arm/kernel/jump_label.c
>> +++ b/arch/arm/kernel/jump_label.c
>> @@ -6,7 +6,7 @@
>>
>>   #ifdef HAVE_JUMP_LABEL
>>
>> -static void __arch_jump_label_transform(struct jump_entry *entry,
>> +static void __arch_jump_label_transform(const struct jump_entry *entry,
>>                       enum jump_label_type type,
>>                       bool is_static)
>>   {
>> @@ -24,13 +24,13 @@ static void __arch_jump_label_transform(struct jump_entry *entry,
>>           patch_text(addr, insn);
>>   }
>>
>> -void arch_jump_label_transform(struct jump_entry *entry,
>> +void arch_jump_label_transform(const struct jump_entry *entry,
>>                      enum jump_label_type type)
>>   {
>>       __arch_jump_label_transform(entry, type, false);
>>   }
>>
>> -void arch_jump_label_transform_static(struct jump_entry *entry,
>> +void arch_jump_label_transform_static(const struct jump_entry *entry,
>>                         enum jump_label_type type)
>>   {
>>       __arch_jump_label_transform(entry, type, true);
>> diff --git a/arch/arm64/include/asm/jump_label.h b/arch/arm64/include/asm/jump_label.h
>> index 076a1c7..93ca8b3 100644
>> --- a/arch/arm64/include/asm/jump_label.h
>> +++ b/arch/arm64/include/asm/jump_label.h
>> @@ -25,7 +25,7 @@
>>
>>   #define JUMP_LABEL_NOP_SIZE        AARCH64_INSN_SIZE
>>
>> -static __always_inline bool arch_static_branch(struct static_key *key)
>> +static __always_inline bool arch_static_branch(const struct static_key *key)
>>   {
>>       asm goto("1: nop\n\t"
>>            ".pushsection __jump_table,  \"aw\"\n\t"
>> diff --git a/arch/arm64/kernel/jump_label.c b/arch/arm64/kernel/jump_label.c
>> index 263a166..c30e4ba 100644
>> --- a/arch/arm64/kernel/jump_label.c
>> +++ b/arch/arm64/kernel/jump_label.c
>> @@ -22,7 +22,7 @@
>>
>>   #ifdef HAVE_JUMP_LABEL
>>
>> -static void __arch_jump_label_transform(struct jump_entry *entry,
>> +static void __arch_jump_label_transform(const struct jump_entry *entry,
>>                       enum jump_label_type type,
>>                       bool is_static)
>>   {
>> @@ -43,13 +43,13 @@ static void __arch_jump_label_transform(struct jump_entry *entry,
>>           aarch64_insn_patch_text(&addr, &insn, 1);
>>   }
>>
>> -void arch_jump_label_transform(struct jump_entry *entry,
>> +void arch_jump_label_transform(const struct jump_entry *entry,
>>                      enum jump_label_type type)
>>   {
>>       __arch_jump_label_transform(entry, type, false);
>>   }
>>
>> -void arch_jump_label_transform_static(struct jump_entry *entry,
>> +void arch_jump_label_transform_static(const struct jump_entry *entry,
>>                         enum jump_label_type type)
>>   {
>>       __arch_jump_label_transform(entry, type, true);
>> diff --git a/arch/mips/include/asm/jump_label.h b/arch/mips/include/asm/jump_label.h
>> index e194f95..0ac7892 100644
>> --- a/arch/mips/include/asm/jump_label.h
>> +++ b/arch/mips/include/asm/jump_label.h
>> @@ -20,7 +20,7 @@
>>   #define WORD_INSN ".word"
>>   #endif
>>
>> -static __always_inline bool arch_static_branch(struct static_key *key)
>> +static __always_inline bool arch_static_branch(const struct static_key *key)
>>   {
>>       asm_volatile_goto("1:\tnop\n\t"
>>           "nop\n\t"
>> diff --git a/arch/mips/kernel/jump_label.c b/arch/mips/kernel/jump_label.c
>> index 6001610..bfba488 100644
>> --- a/arch/mips/kernel/jump_label.c
>> +++ b/arch/mips/kernel/jump_label.c
>> @@ -20,7 +20,7 @@
>>
>>   #define J_RANGE_MASK ((1ul << 28) - 1)
>>
>> -void arch_jump_label_transform(struct jump_entry *e,
>> +void arch_jump_label_transform(const struct jump_entry *e,
>>                      enum jump_label_type type)
>>   {
>>       union mips_instruction insn;
>> diff --git a/arch/powerpc/include/asm/jump_label.h b/arch/powerpc/include/asm/jump_label.h
>> index f016bb6..93eb7c5 100644
>> --- a/arch/powerpc/include/asm/jump_label.h
>> +++ b/arch/powerpc/include/asm/jump_label.h
>> @@ -17,7 +17,7 @@
>>   #define JUMP_ENTRY_TYPE        stringify_in_c(FTR_ENTRY_LONG)
>>   #define JUMP_LABEL_NOP_SIZE    4
>>
>> -static __always_inline bool arch_static_branch(struct static_key *key)
>> +static __always_inline bool arch_static_branch(const struct static_key *key)
>>   {
>>       asm_volatile_goto("1:\n\t"
>>            "nop\n\t"
>> diff --git a/arch/powerpc/kernel/jump_label.c b/arch/powerpc/kernel/jump_label.c
>> index a1ed8a8..f9626ec 100644
>> --- a/arch/powerpc/kernel/jump_label.c
>> +++ b/arch/powerpc/kernel/jump_label.c
>> @@ -12,7 +12,7 @@
>>   #include <asm/code-patching.h>
>>
>>   #ifdef HAVE_JUMP_LABEL
>> -void arch_jump_label_transform(struct jump_entry *entry,
>> +void arch_jump_label_transform(const struct jump_entry *entry,
>>                      enum jump_label_type type)
>>   {
>>       u32 *addr = (u32 *)(unsigned long)entry->code;
>> diff --git a/arch/s390/include/asm/jump_label.h b/arch/s390/include/asm/jump_label.h
>> index 346b1c8..9ee8e1b 100644
>> --- a/arch/s390/include/asm/jump_label.h
>> +++ b/arch/s390/include/asm/jump_label.h
>> @@ -13,7 +13,7 @@
>>   #define ASM_ALIGN ".balign 4"
>>   #endif
>>
>> -static __always_inline bool arch_static_branch(struct static_key *key)
>> +static __always_inline bool arch_static_branch(const struct static_key *key)
>>   {
>>       asm_volatile_goto("0:    brcl 0,0\n"
>>           ".pushsection __jump_table, \"aw\"\n"
>> diff --git a/arch/s390/kernel/jump_label.c b/arch/s390/kernel/jump_label.c
>> index b987ab2..15a7c60 100644
>> --- a/arch/s390/kernel/jump_label.c
>> +++ b/arch/s390/kernel/jump_label.c
>> @@ -18,11 +18,11 @@ struct insn {
>>   } __packed;
>>
>>   struct insn_args {
>> -    struct jump_entry *entry;
>> +    const const struct jump_entry *entry;
>>       enum jump_label_type type;
>>   };
>>
>> -static void __jump_label_transform(struct jump_entry *entry,
>> +static void __jump_label_transform(const struct jump_entry *entry,
>>                      enum jump_label_type type)
>>   {
>>       struct insn insn;
>> @@ -42,15 +42,15 @@ static void __jump_label_transform(struct jump_entry *entry,
>>       WARN_ON_ONCE(rc < 0);
>>   }
>>
>> -static int __sm_arch_jump_label_transform(void *data)
>> +static int __sm_arch_jump_label_transform(const void *data)
>>   {
>> -    struct insn_args *args = data;
>> +    const struct insn_args *args = data;
>>
>>       __jump_label_transform(args->entry, args->type);
>>       return 0;
>>   }
>>
>> -void arch_jump_label_transform(struct jump_entry *entry,
>> +void arch_jump_label_transform(const struct jump_entry *entry,
>>                      enum jump_label_type type)
>>   {
>>       struct insn_args args;
>> @@ -61,7 +61,7 @@ void arch_jump_label_transform(struct jump_entry *entry,
>>       stop_machine(__sm_arch_jump_label_transform, &args, NULL);
>>   }
>>
>> -void arch_jump_label_transform_static(struct jump_entry *entry,
>> +void arch_jump_label_transform_static(const struct jump_entry *entry,
>>                         enum jump_label_type type)
>>   {
>>       __jump_label_transform(entry, type);
>> diff --git a/arch/sparc/include/asm/jump_label.h b/arch/sparc/include/asm/jump_label.h
>> index ec2e2e2..4f1f223 100644
>> --- a/arch/sparc/include/asm/jump_label.h
>> +++ b/arch/sparc/include/asm/jump_label.h
>> @@ -7,7 +7,7 @@
>>
>>   #define JUMP_LABEL_NOP_SIZE 4
>>
>> -static __always_inline bool arch_static_branch(struct static_key *key)
>> +static __always_inline bool arch_static_branch(const struct static_key *key)
>>   {
>>           asm_volatile_goto("1:\n\t"
>>                "nop\n\t"
>> diff --git a/arch/sparc/kernel/jump_label.c b/arch/sparc/kernel/jump_label.c
>> index 48565c1..231c10e 100644
>> --- a/arch/sparc/kernel/jump_label.c
>> +++ b/arch/sparc/kernel/jump_label.c
>> @@ -10,7 +10,7 @@
>>
>>   #ifdef HAVE_JUMP_LABEL
>>
>> -void arch_jump_label_transform(struct jump_entry *entry,
>> +void arch_jump_label_transform(const struct jump_entry *entry,
>>                      enum jump_label_type type)
>>   {
>>       u32 val;
>> diff --git a/arch/x86/include/asm/jump_label.h b/arch/x86/include/asm/jump_label.h
>> index 6a2cefb..329ab91 100644
>> --- a/arch/x86/include/asm/jump_label.h
>> +++ b/arch/x86/include/asm/jump_label.h
>> @@ -16,7 +16,7 @@
>>   # define STATIC_KEY_INIT_NOP GENERIC_NOP5_ATOMIC
>>   #endif
>>
>> -static __always_inline bool arch_static_branch(struct static_key *key)
>> +static __always_inline bool arch_static_branch(const struct static_key *key)
>>   {
>>       asm_volatile_goto("1:"
>>           ".byte " __stringify(STATIC_KEY_INIT_NOP) "\n\t"
>> diff --git a/arch/x86/include/asm/spinlock.h b/arch/x86/include/asm/spinlock.h
>> index bf156de..5af9269 100644
>> --- a/arch/x86/include/asm/spinlock.h
>> +++ b/arch/x86/include/asm/spinlock.h
>> @@ -41,7 +41,7 @@
>>   #define SPIN_THRESHOLD    (1 << 15)
>>
>>   extern struct static_key paravirt_ticketlocks_enabled;
>> -static __always_inline bool static_key_false(struct static_key *key);
>> +static __always_inline bool static_key_false(const struct static_key *key);
>>
>>   #ifdef CONFIG_PARAVIRT_SPINLOCKS
>>
>> diff --git a/arch/x86/kernel/jump_label.c b/arch/x86/kernel/jump_label.c
>> index 26d5a55..fe1cc9d 100644
>> --- a/arch/x86/kernel/jump_label.c
>> +++ b/arch/x86/kernel/jump_label.c
>> @@ -36,7 +36,7 @@ static void bug_at(unsigned char *ip, int line)
>>       BUG();
>>   }
>>
>> -static void __jump_label_transform(struct jump_entry *entry,
>> +static void __jump_label_transform(const struct jump_entry *entry,
>>                      enum jump_label_type type,
>>                      void *(*poker)(void *, const void *, size_t),
>>                      int init)
>> @@ -102,7 +102,7 @@ static void __jump_label_transform(struct jump_entry *entry,
>>                    (void *)entry->code + JUMP_LABEL_NOP_SIZE);
>>   }
>>
>> -void arch_jump_label_transform(struct jump_entry *entry,
>> +void arch_jump_label_transform(const struct jump_entry *entry,
>>                      enum jump_label_type type)
>>   {
>>       get_online_cpus();
>> @@ -118,7 +118,7 @@ static enum {
>>       JL_STATE_UPDATE,
>>   } jlstate __initdata_or_module = JL_STATE_START;
>>
>> -__init_or_module void arch_jump_label_transform_static(struct jump_entry *entry,
>> +__init_or_module void arch_jump_label_transform_static(const struct jump_entry *entry,
>>                         enum jump_label_type type)
>>   {
>>       /*
>> diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h
>> index 5c1dfb2..2b2e358 100644
>> --- a/include/linux/jump_label.h
>> +++ b/include/linux/jump_label.h
>> @@ -86,13 +86,14 @@ struct module;
>>   #define JUMP_LABEL_TYPE_MASK        1UL
>>
>>   static
>> -inline struct jump_entry *jump_label_get_entries(struct static_key *key)
>> +inline const struct jump_entry *jump_label_get_entries(
>> +                    const struct static_key *key)
>>   {
>>       return (struct jump_entry *)((unsigned long)key->entries
>>                           & ~JUMP_LABEL_TYPE_MASK);
>>   }
>>
>> -static inline bool jump_label_get_branch_default(struct static_key *key)
>> +static inline bool jump_label_get_branch_default(const struct static_key *key)
>>   {
>>       if (((unsigned long)key->entries & JUMP_LABEL_TYPE_MASK) ==
>>           JUMP_LABEL_TYPE_TRUE_BRANCH)
>> @@ -100,12 +101,12 @@ static inline bool jump_label_get_branch_default(struct static_key *key)
>>       return false;
>>   }
>>
>> -static __always_inline bool static_key_false(struct static_key *key)
>> +static __always_inline bool static_key_false(const struct static_key *key)
>>   {
>>       return arch_static_branch(key);
>>   }
>>
>> -static __always_inline bool static_key_true(struct static_key *key)
>> +static __always_inline bool static_key_true(const struct static_key *key)
>>   {
>>       return !static_key_false(key);
>>   }
>> @@ -116,14 +117,14 @@ extern struct jump_entry __stop___jump_table[];
>>   extern void jump_label_init(void);
>>   extern void jump_label_lock(void);
>>   extern void jump_label_unlock(void);
>> -extern void arch_jump_label_transform(struct jump_entry *entry,
>> +extern void arch_jump_label_transform(const struct jump_entry *entry,
>>                         enum jump_label_type type);
>> -extern void arch_jump_label_transform_static(struct jump_entry *entry,
>> +extern void arch_jump_label_transform_static(const struct jump_entry *entry,
>>                            enum jump_label_type type);
>> -extern int jump_label_text_reserved(void *start, void *end);
>> +extern int jump_label_text_reserved(const void *start, const void *end);
>>   extern void static_key_slow_inc(struct static_key *key);
>>   extern void static_key_slow_dec(struct static_key *key);
>> -extern void jump_label_apply_nops(struct module *mod);
>> +extern void jump_label_apply_nops(const struct module *mod);
>>
>>   #define STATIC_KEY_INIT_TRUE ((struct static_key)        \
>>       { .enabled = ATOMIC_INIT(1),                \
>> @@ -143,14 +144,14 @@ static __always_inline void jump_label_init(void)
>>       static_key_initialized = true;
>>   }
>>
>> -static __always_inline bool static_key_false(struct static_key *key)
>> +static __always_inline bool static_key_false(const struct static_key *key)
>>   {
>>       if (unlikely(atomic_read(&key->enabled) > 0))
>>           return true;
>>       return false;
>>   }
>>
>> -static __always_inline bool static_key_true(struct static_key *key)
>> +static __always_inline bool static_key_true(const struct static_key *key)
>>   {
>>       if (likely(atomic_read(&key->enabled) > 0))
>>           return true;
>> @@ -169,7 +170,7 @@ static inline void static_key_slow_dec(struct static_key *key)
>>       atomic_dec(&key->enabled);
>>   }
>>
>> -static inline int jump_label_text_reserved(void *start, void *end)
>> +static inline int jump_label_text_reserved(const void *start, const void *end)
>>   {
>>       return 0;
>>   }
>> @@ -177,7 +178,7 @@ static inline int jump_label_text_reserved(void *start, void *end)
>>   static inline void jump_label_lock(void) {}
>>   static inline void jump_label_unlock(void) {}
>>
>> -static inline int jump_label_apply_nops(struct module *mod)
>> +static inline int jump_label_apply_nops(const struct module *mod)
>>   {
>>       return 0;
>>   }
>> @@ -192,7 +193,7 @@ static inline int jump_label_apply_nops(struct module *mod)
>>   #define STATIC_KEY_INIT STATIC_KEY_INIT_FALSE
>>   #define jump_label_enabled static_key_enabled
>>
>> -static inline bool static_key_enabled(struct static_key *key)
>> +static inline bool static_key_enabled(const struct static_key *key)
>>   {
>>       return (atomic_read(&key->enabled) > 0);
>>   }
>> diff --git a/kernel/jump_label.c b/kernel/jump_label.c
>> index 9019f15..6879f48 100644
>> --- a/kernel/jump_label.c
>> +++ b/kernel/jump_label.c
>> @@ -54,7 +54,7 @@ jump_label_sort_entries(struct jump_entry *start, struct jump_entry *stop)
>>       sort(start, size, sizeof(struct jump_entry), jump_label_cmp, NULL);
>>   }
>>
>> -static void jump_label_update(struct static_key *key, int enable);
>> +static void jump_label_update(const struct static_key *key, int enable);
>>
>>   void static_key_slow_inc(struct static_key *key)
>>   {
>> @@ -125,7 +125,8 @@ void jump_label_rate_limit(struct static_key_deferred *key,
>>   }
>>   EXPORT_SYMBOL_GPL(jump_label_rate_limit);
>>
>> -static int addr_conflict(struct jump_entry *entry, void *start, void *end)
>> +static int addr_conflict(const struct jump_entry *entry, const void *start,
>> +        const void *end)
>>   {
>>       if (entry->code <= (unsigned long)end &&
>>           entry->code + JUMP_LABEL_NOP_SIZE > (unsigned long)start)
>> @@ -134,10 +135,11 @@ static int addr_conflict(struct jump_entry *entry, void *start, void *end)
>>       return 0;
>>   }
>>
>> -static int __jump_label_text_reserved(struct jump_entry *iter_start,
>> -        struct jump_entry *iter_stop, void *start, void *end)
>> +static int __jump_label_text_reserved(const struct jump_entry *iter_start,
>> +        const struct jump_entry *iter_stop, const void *start,
>> +        const void *end)
>>   {
>> -    struct jump_entry *iter;
>> +    const struct jump_entry *iter;
>>
>>       iter = iter_start;
>>       while (iter < iter_stop) {
>> @@ -155,15 +157,15 @@ static int __jump_label_text_reserved(struct jump_entry *iter_start,
>>    * running code can override this to make the non-live update case
>>    * cheaper.
>>    */
>> -void __weak __init_or_module arch_jump_label_transform_static(struct jump_entry *entry,
>> -                        enum jump_label_type type)
>> +void __weak __init_or_module arch_jump_label_transform_static(
>> +        const struct jump_entry *entry, enum jump_label_type type)
>>   {
>>       arch_jump_label_transform(entry, type);
>>   }
>>
>> -static void __jump_label_update(struct static_key *key,
>> -                struct jump_entry *entry,
>> -                struct jump_entry *stop, int enable)
>> +static void __jump_label_update(const struct static_key *key,
>> +                const struct jump_entry *entry,
>> +                const struct jump_entry *stop, int enable)
>>   {
>>       for (; (entry < stop) &&
>>             (entry->key == (jump_label_t)(unsigned long)key);
>> @@ -178,7 +180,7 @@ static void __jump_label_update(struct static_key *key,
>>       }
>>   }
>>
>> -static enum jump_label_type jump_label_type(struct static_key *key)
>> +static enum jump_label_type jump_label_type(const struct static_key *key)
>>   {
>>       bool true_branch = jump_label_get_branch_default(key);
>>       bool state = static_key_enabled(key);
>> @@ -228,9 +230,9 @@ struct static_key_mod {
>>       struct module *mod;
>>   };
>>
>> -static int __jump_label_mod_text_reserved(void *start, void *end)
>> +static int __jump_label_mod_text_reserved(const void *start, const void *end)
>>   {
>> -    struct module *mod;
>> +    const struct module *mod;
>>
>>       mod = __module_text_address((unsigned long)start);
>>       if (!mod)
>> @@ -243,12 +245,12 @@ static int __jump_label_mod_text_reserved(void *start, void *end)
>>                   start, end);
>>   }
>>
>> -static void __jump_label_mod_update(struct static_key *key, int enable)
>> +static void __jump_label_mod_update(const struct static_key *key, int enable)
>>   {
>> -    struct static_key_mod *mod = key->next;
>> +    const struct static_key_mod *mod = key->next;
>>
>>       while (mod) {
>> -        struct module *m = mod->mod;
>> +        const struct module *m = mod->mod;
>>
>>           __jump_label_update(key, mod->entries,
>>                       m->jump_entries + m->num_jump_entries,
>> @@ -265,7 +267,7 @@ static void __jump_label_mod_update(struct static_key *key, int enable)
>>    * loads patch these with arch_get_jump_label_nop(), which is specified by
>>    * the arch specific jump label code.
>>    */
>> -void jump_label_apply_nops(struct module *mod)
>> +void jump_label_apply_nops(const struct module *mod)
>>   {
>>       struct jump_entry *iter_start = mod->jump_entries;
>>       struct jump_entry *iter_stop = iter_start + mod->num_jump_entries;
>> @@ -425,7 +427,7 @@ early_initcall(jump_label_init_module);
>>    *
>>    * returns 1 if there is an overlap, 0 otherwise
>>    */
>> -int jump_label_text_reserved(void *start, void *end)
>> +int jump_label_text_reserved(const void *start, const void *end)
>>   {
>>       int ret = __jump_label_text_reserved(__start___jump_table,
>>               __stop___jump_table, start, end);
>> @@ -439,13 +441,13 @@ int jump_label_text_reserved(void *start, void *end)
>>       return ret;
>>   }
>>
>> -static void jump_label_update(struct static_key *key, int enable)
>> +static void jump_label_update(const struct static_key *key, int enable)
>>   {
>> -    struct jump_entry *stop = __stop___jump_table;
>> -    struct jump_entry *entry = jump_label_get_entries(key);
>> +    const struct jump_entry *stop = __stop___jump_table;
>> +    const struct jump_entry *entry = jump_label_get_entries(key);
>>
>>   #ifdef CONFIG_MODULES
>> -    struct module *mod = __module_address((unsigned long)key);
>> +    const struct module *mod = __module_address((unsigned long)key);
>>
>>       __jump_label_mod_update(key, enable);
>>
>>
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] jump label: constify lookup functions
  2014-03-14 19:40   ` Sasha Levin
@ 2014-03-20 17:13     ` Steven Rostedt
  0 siblings, 0 replies; 4+ messages in thread
From: Steven Rostedt @ 2014-03-20 17:13 UTC (permalink / raw)
  To: Sasha Levin; +Cc: linux-arch, linux-kernel

On Fri, 14 Mar 2014 15:40:05 -0400
Sasha Levin <sasha.levin@oracle.com> wrote:

> ping?
> 
> On 02/12/2014 08:56 AM, Sasha Levin wrote:
> > ping?
> >
> > On 01/27/2014 02:27 PM, Sasha Levin wrote:
> >> Modify the parameters of all the lookup and the bookkeeping functions which
> >> should be const to const.
> >>
> >> For example, jump_label_text_reserved() doesn't modify the memory it works on,
> >> it just checks whether there are any jump labels there.
> >>
> >> Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
> >> ---
> >>   arch/arm/include/asm/jump_label.h     |  2 +-
> >>   arch/arm/kernel/jump_label.c          |  6 ++---
> >>   arch/arm64/include/asm/jump_label.h   |  2 +-
> >>   arch/arm64/kernel/jump_label.c        |  6 ++---
> >>   arch/mips/include/asm/jump_label.h    |  2 +-
> >>   arch/mips/kernel/jump_label.c         |  2 +-
> >>   arch/powerpc/include/asm/jump_label.h |  2 +-
> >>   arch/powerpc/kernel/jump_label.c      |  2 +-
> >>   arch/s390/include/asm/jump_label.h    |  2 +-
> >>   arch/s390/kernel/jump_label.c         | 12 ++++-----
> >>   arch/sparc/include/asm/jump_label.h   |  2 +-
> >>   arch/sparc/kernel/jump_label.c        |  2 +-
> >>   arch/x86/include/asm/jump_label.h     |  2 +-
> >>   arch/x86/include/asm/spinlock.h       |  2 +-
> >>   arch/x86/kernel/jump_label.c          |  6 ++---

The arch changes should be broken up per arch. They are not dependent
on each other, and they require being either acked by or pulled in by
the architecture maintainers.

> >>   include/linux/jump_label.h            | 27 ++++++++++----------
> >>   kernel/jump_label.c                   | 46 ++++++++++++++++++-----------------
> >>   17 files changed, 64 insertions(+), 61 deletions(-)

The jump label generic patch should also be by itself, and that I can
take.

-- Steve

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-03-20 17:13 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-27 19:27 [PATCH] jump label: constify lookup functions Sasha Levin
2014-02-12 13:56 ` Sasha Levin
2014-03-14 19:40   ` Sasha Levin
2014-03-20 17:13     ` Steven Rostedt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).