Jason Baron <jbaron@xxxxxxxxxx> writes: > On 02/20/2017 10:05 PM, Sachin Sant wrote: >> >>> On 20-Feb-2017, at 8:27 PM, Jason Baron <jbaron@xxxxxxxxxx >>> <mailto:jbaron@xxxxxxxxxx>> wrote: >>> >>> Hi, >>> >>> On 02/19/2017 09:07 AM, Sachin Sant wrote: >>>> While booting next-20170217 on a POWER8 LPAR following >>>> warning is displayed. >>>> >>>> Reverting the following commit helps boot cleanly. >>>> commit 3821fd35b5 : jump_label: Reduce the size of struct static_key >>>> >>>> [ 11.393008] ------------[ cut here ]------------ >>>> [ 11.393031] WARNING: CPU: 5 PID: 2890 at kernel/jump_label.c:287 >>>> static_key_set_entries.isra.10+0x3c/0x50 >>> >>> Thanks for the report. So this is saying that the jump_entry table is >>> not at least 4-byte aligned. I wonder if this fixes it up? >>> >> >> Yes. With this patch the warning is gone. > > Hi, > > Thanks for testing. We probably need something like the following to > make sure we don't hit this on other arches. Steve - I will send 4 > separate patches for this to get arch maintainers' acks for this? What's the 4 byte alignment requirement from? On 64-bit our JUMP_ENTRY_TYPE is 8 bytes, should we be aligning to 8 bytes? > diff --git a/arch/powerpc/include/asm/jump_label.h > b/arch/powerpc/include/asm/jump_label.h > index 9a287e0ac8b1..f870a85bac46 100644 > --- a/arch/powerpc/include/asm/jump_label.h > +++ b/arch/powerpc/include/asm/jump_label.h > @@ -24,6 +24,7 @@ static __always_inline bool arch_static_branch(struct > static_key *key, bool bran > asm_volatile_goto("1:\n\t" > "nop # arch_static_branch\n\t" > ".pushsection __jump_table, \"aw\"\n\t" > + ".balign 4 \n\t" Can you line those up vertically? (That may just be an email artifact) > JUMP_ENTRY_TYPE "1b, %l[l_yes], %c0\n\t" > ".popsection \n\t" > : : "i" (&((char *)key)[branch]) : : l_yes); > @@ -38,6 +39,7 @@ static __always_inline bool > arch_static_branch_jump(struct static_key *key, bool > asm_volatile_goto("1:\n\t" > "b %l[l_yes] # arch_static_branch_jump\n\t" > ".pushsection __jump_table, \"aw\"\n\t" > + ".balign 4 \n\t" > JUMP_ENTRY_TYPE "1b, %l[l_yes], %c0\n\t" > ".popsection \n\t" > : : "i" (&((char *)key)[branch]) : : l_yes); > @@ -63,6 +65,7 @@ struct jump_entry { > #define ARCH_STATIC_BRANCH(LABEL, KEY) \ > 1098: nop; \ > .pushsection __jump_table, "aw"; \ > + .balign 4; \ > FTR_ENTRY_LONG 1098b, LABEL, KEY; \ > .popsection > #endif Otherwise that looks fine assuming 4 bytes is the correct alignment. cheers -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html