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

From: Ralf Baechle
Date: Thu Mar 10 2011 - 21:06:00 EST


On Thu, Mar 10, 2011 at 03:56:56PM -0500, Steven Rostedt wrote:

> 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.

You could have gotten it quicker if I had been on cc ...

I'm happy with the change to arch/mips/include/asm/jump_label.h and
assuming that the change to arch/mips/kernel/jump_label.c will be dropped

Acked-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>

Ralf
--
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/