On Fri, Jul 24, 2015 at 07:52:15PM +0200, Peter Zijlstra wrote: > --- a/arch/s390/include/asm/jump_label.h > +++ b/arch/s390/include/asm/jump_label.h > @@ -12,14 +12,29 @@ > * We use a brcl 0,2 instruction for jump labels at compile time so it > * can be easily distinguished from a hotpatch generated instruction. > */ > -static __always_inline bool arch_static_branch(struct static_key *key) > +static __always_inline bool arch_static_branch(struct static_key *key, bool > branch) > { > asm_volatile_goto("0: brcl 0,"__stringify(JUMP_LABEL_NOP_OFFSET)"\n" > ".pushsection __jump_table, \"aw\"\n" > ".balign 8\n" > ".quad 0b, %l[label], %0\n" > ".popsection\n" > - : : "X" (key) : : label); > + : : "X" (&((char *)key)[branch]) : : label); > + > + return false; > +label: > + return true; > +} > + > +static __always_inline bool arch_static_branch_jump(struct static_key *key, > bool branch) > +{ > + asm_volatile_goto("0: j %l[l_yes]\n"
Looking at the s390 version of jump_label_make_branch(), this should have been: "brcl 15, %l[l_yes]\n" I suppose? > + ".pushsection __jump_table, \"aw\"\n" > + ".balign 8\n" > + ".quad 0b, %l[label], %0\n" > + ".popsection\n" > + : : "X" (&((char *)key)[branch]) : : label); > + > return false; > label: > return true; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/