Re: [PATCH 1/2] jump label: introduce static_branch() interface

From: Steven Rostedt
Date: Thu Mar 10 2011 - 15:57:02 EST


On Wed, 2011-03-09 at 15:47 -0500, Jason Baron wrote:

> arch/mips/include/asm/jump_label.h | 22 +-
> arch/mips/kernel/jump_label.c | 2 +-
> arch/sparc/include/asm/jump_label.h | 25 +-
> arch/x86/include/asm/alternative.h | 3 +-
> arch/x86/include/asm/jump_label.h | 26 +-
> arch/x86/kernel/alternative.c | 2 +-
> arch/x86/kernel/jump_label.c | 2 +-
> arch/x86/kernel/module.c | 1 +
> include/asm-generic/vmlinux.lds.h | 14 +-
> include/linux/dynamic_debug.h | 2 -
> include/linux/jump_label.h | 86 ++++---
> include/linux/jump_label_ref.h | 44 ---
> include/linux/perf_event.h | 26 +-
> include/linux/tracepoint.h | 22 +-
> kernel/jump_label.c | 537 ++++++++++++++---------------------
> kernel/perf_event.c | 4 +-
> kernel/tracepoint.c | 23 +-
> 17 files changed, 352 insertions(+), 489 deletions(-)
> delete mode 100644 include/linux/jump_label_ref.h
>
> diff --git a/arch/mips/include/asm/jump_label.h b/arch/mips/include/asm/jump_label.h
> index 7622ccf..1881b31 100644
> --- a/arch/mips/include/asm/jump_label.h
> +++ b/arch/mips/include/asm/jump_label.h
> @@ -20,16 +20,18 @@
> #define WORD_INSN ".word"
> #endif
>
> -#define JUMP_LABEL(key, label) \
> - do { \
> - asm goto("1:\tnop\n\t" \
> - "nop\n\t" \
> - ".pushsection __jump_table, \"a\"\n\t" \
> - WORD_INSN " 1b, %l[" #label "], %0\n\t" \
> - ".popsection\n\t" \
> - : : "i" (key) : : label); \
> - } while (0)
> -
> +static __always_inline bool arch_static_branch(struct jump_label_key *key)
> +{
> + asm goto("1:\tnop\n\t"
> + "nop\n\t"
> + ".pushsection __jump_table, \"aw\"\n\t"
> + WORD_INSN " 1b, %l[l_yes], %0\n\t"
> + ".popsection\n\t"
> + : : "i" (key) : : l_yes);
> + return false;
> +l_yes:
> + return true;
> +}
>
> #endif /* __KERNEL__ */
>
> diff --git a/arch/mips/kernel/jump_label.c b/arch/mips/kernel/jump_label.c
> index 6001610..09ac7ca 100644
> --- a/arch/mips/kernel/jump_label.c
> +++ b/arch/mips/kernel/jump_label.c
> @@ -6,11 +6,11 @@
> * Copyright (c) 2010 Cavium Networks, Inc.
> */
>
> -#include <linux/jump_label.h>
> #include <linux/kernel.h>
> #include <linux/memory.h>
> #include <linux/mutex.h>
> #include <linux/types.h>
> +#include <linux/jump_label.h>
> #include <linux/cpu.h>
>
> #include <asm/cacheflush.h>

Hi Ralf,

Can I get your Acked-by on this patch.

Thanks,

-- Steve


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/