Message ID | 20170301220453.4756-1-david.daney@cavium.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
David Daney <david.daney@cavium.com> writes: > For powerpc the __jump_table section in modules is not aligned, this > causes a WARN_ON() splat when loading a module containing a __jump_table. Thanks for doing the patch. If it helps: Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc) > Strict alignment became necessary with commit 3821fd35b58d > ("jump_label: Reduce the size of struct static_key"), currently in > linux-next, which uses the two least significant bits of pointers to > __jump_table elements. It would obviously be nice if this could go in before the commit that exposes the breakage, but I guess that's problematic because Steve doesn't want to rebase the tracing tree. Steve I think you've already sent your pull request for this cycle? So I guess if this can go in your first batch of fixes? Or we could just send it directly to Linus? cheers > Fix by forcing __jump_table to 8, which is the same alignment used for > this section in the kernel proper. > > Signed-off-by: David Daney <david.daney@cavium.com> > Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com> > --- > scripts/module-common.lds | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/scripts/module-common.lds b/scripts/module-common.lds > index 73a2c7d..53234e8 100644 > --- a/scripts/module-common.lds > +++ b/scripts/module-common.lds > @@ -19,4 +19,6 @@ SECTIONS { > > . = ALIGN(8); > .init_array 0 : { *(SORT(.init_array.*)) *(.init_array) } > + > + __jump_table 0 : ALIGN(8) { KEEP(*(__jump_table)) } > } > -- > 2.9.3
Michael Ellerman <mpe@ellerman.id.au> writes: > David Daney <david.daney@cavium.com> writes: >> Strict alignment became necessary with commit 3821fd35b58d >> ("jump_label: Reduce the size of struct static_key"), currently in >> linux-next, which uses the two least significant bits of pointers to >> __jump_table elements. > > It would obviously be nice if this could go in before the commit that > exposes the breakage, but I guess that's problematic because Steve > doesn't want to rebase the tracing tree. > > Steve I think you've already sent your pull request for this cycle? So I > guess if this can go in your first batch of fixes? Ugh. Was looking at the wrong tree - Linus has already merged the commit in question, so the above is all moot. cheers
On 03/01/2017 05:04 PM, David Daney wrote: > For powerpc the __jump_table section in modules is not aligned, this > causes a WARN_ON() splat when loading a module containing a __jump_table. > > Strict alignment became necessary with commit 3821fd35b58d > ("jump_label: Reduce the size of struct static_key"), currently in > linux-next, which uses the two least significant bits of pointers to > __jump_table elements. > > Fix by forcing __jump_table to 8, which is the same alignment used for > this section in the kernel proper. > > Signed-off-by: David Daney <david.daney@cavium.com> > Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com> > --- Looks good to me. Reviewed-by: Jason Baron <jbaron@akamai.com> Thanks, -Jason
On Thu, 02 Mar 2017 22:18:30 +1100 Michael Ellerman <mpe@ellerman.id.au> wrote: > Michael Ellerman <mpe@ellerman.id.au> writes: > > David Daney <david.daney@cavium.com> writes: > >> Strict alignment became necessary with commit 3821fd35b58d > >> ("jump_label: Reduce the size of struct static_key"), currently in > >> linux-next, which uses the two least significant bits of pointers to > >> __jump_table elements. > > > > It would obviously be nice if this could go in before the commit that > > exposes the breakage, but I guess that's problematic because Steve > > doesn't want to rebase the tracing tree. > > > > Steve I think you've already sent your pull request for this cycle? So I > > guess if this can go in your first batch of fixes? > > Ugh. Was looking at the wrong tree - Linus has already merged the commit > in question, so the above is all moot. No problem. I've got some other "fixes" to push to Linus. That's what the -rc releases are for. To fix up breakage from the merge window ;-) I'll pull this into my tree. Thanks! -- Steve
Can I get an Ack from a module maintainer? Thanks! -- Steve On Wed, 1 Mar 2017 14:04:53 -0800 David Daney <david.daney@cavium.com> wrote: > For powerpc the __jump_table section in modules is not aligned, this > causes a WARN_ON() splat when loading a module containing a __jump_table. > > Strict alignment became necessary with commit 3821fd35b58d > ("jump_label: Reduce the size of struct static_key"), currently in > linux-next, which uses the two least significant bits of pointers to > __jump_table elements. > > Fix by forcing __jump_table to 8, which is the same alignment used for > this section in the kernel proper. > > Signed-off-by: David Daney <david.daney@cavium.com> > Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com> > --- > scripts/module-common.lds | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/scripts/module-common.lds b/scripts/module-common.lds > index 73a2c7d..53234e8 100644 > --- a/scripts/module-common.lds > +++ b/scripts/module-common.lds > @@ -19,4 +19,6 @@ SECTIONS { > > . = ALIGN(8); > .init_array 0 : { *(SORT(.init_array.*)) *(.init_array) } > + > + __jump_table 0 : ALIGN(8) { KEEP(*(__jump_table)) } > }
+++ Steven Rostedt [02/03/17 13:11 -0500]: > >Can I get an Ack from a module maintainer? Acked-by: Jessica Yu <jeyu@redhat.com> Thanks! Jessica >On Wed, 1 Mar 2017 14:04:53 -0800 >David Daney <david.daney@cavium.com> wrote: > >> For powerpc the __jump_table section in modules is not aligned, this >> causes a WARN_ON() splat when loading a module containing a __jump_table. >> >> Strict alignment became necessary with commit 3821fd35b58d >> ("jump_label: Reduce the size of struct static_key"), currently in >> linux-next, which uses the two least significant bits of pointers to >> __jump_table elements. >> >> Fix by forcing __jump_table to 8, which is the same alignment used for >> this section in the kernel proper. >> >> Signed-off-by: David Daney <david.daney@cavium.com> >> Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com> >> --- >> scripts/module-common.lds | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/scripts/module-common.lds b/scripts/module-common.lds >> index 73a2c7d..53234e8 100644 >> --- a/scripts/module-common.lds >> +++ b/scripts/module-common.lds >> @@ -19,4 +19,6 @@ SECTIONS { >> >> . = ALIGN(8); >> .init_array 0 : { *(SORT(.init_array.*)) *(.init_array) } >> + >> + __jump_table 0 : ALIGN(8) { KEEP(*(__jump_table)) } >> } >
On 03/02/2017 10:26 AM, Jessica Yu wrote: > +++ Steven Rostedt [02/03/17 13:11 -0500]: >> >> Can I get an Ack from a module maintainer? > > Acked-by: Jessica Yu <jeyu@redhat.com> > > Thanks! > > Jessica Thanks Jessica, Can you also add scripts/module-common.lds to MAINTAINERS so that get_maintainers.pl will indicate that Jessica Yu and Rusty Russell be CCed on things like this in the future? > >> On Wed, 1 Mar 2017 14:04:53 -0800 >> David Daney <david.daney@cavium.com> wrote: >> >>> For powerpc the __jump_table section in modules is not aligned, this >>> causes a WARN_ON() splat when loading a module containing a >>> __jump_table. >>> >>> Strict alignment became necessary with commit 3821fd35b58d >>> ("jump_label: Reduce the size of struct static_key"), currently in >>> linux-next, which uses the two least significant bits of pointers to >>> __jump_table elements. >>> >>> Fix by forcing __jump_table to 8, which is the same alignment used for >>> this section in the kernel proper. >>> >>> Signed-off-by: David Daney <david.daney@cavium.com> >>> Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com> >>> --- >>> scripts/module-common.lds | 2 ++ >>> 1 file changed, 2 insertions(+) >>> >>> diff --git a/scripts/module-common.lds b/scripts/module-common.lds >>> index 73a2c7d..53234e8 100644 >>> --- a/scripts/module-common.lds >>> +++ b/scripts/module-common.lds >>> @@ -19,4 +19,6 @@ SECTIONS { >>> >>> . = ALIGN(8); >>> .init_array 0 : { *(SORT(.init_array.*)) *(.init_array) } >>> + >>> + __jump_table 0 : ALIGN(8) { KEEP(*(__jump_table)) } >>> } >>
+++ David Daney [02/03/17 11:24 -0800]: >On 03/02/2017 10:26 AM, Jessica Yu wrote: >>+++ Steven Rostedt [02/03/17 13:11 -0500]: >>> >>>Can I get an Ack from a module maintainer? >> >>Acked-by: Jessica Yu <jeyu@redhat.com> >> >>Thanks! >> >>Jessica > >Thanks Jessica, > >Can you also add scripts/module-common.lds to MAINTAINERS so that >get_maintainers.pl will indicate that Jessica Yu and Rusty Russell be >CCed on things like this in the future? Sure thing. Thanks for the heads up! Jessica >>>On Wed, 1 Mar 2017 14:04:53 -0800 >>>David Daney <david.daney@cavium.com> wrote: >>> >>>>For powerpc the __jump_table section in modules is not aligned, this >>>>causes a WARN_ON() splat when loading a module containing a >>>>__jump_table. >>>> >>>>Strict alignment became necessary with commit 3821fd35b58d >>>>("jump_label: Reduce the size of struct static_key"), currently in >>>>linux-next, which uses the two least significant bits of pointers to >>>>__jump_table elements. >>>> >>>>Fix by forcing __jump_table to 8, which is the same alignment used for >>>>this section in the kernel proper. >>>> >>>>Signed-off-by: David Daney <david.daney@cavium.com> >>>>Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com> >>>>--- >>>> scripts/module-common.lds | 2 ++ >>>> 1 file changed, 2 insertions(+) >>>> >>>>diff --git a/scripts/module-common.lds b/scripts/module-common.lds >>>>index 73a2c7d..53234e8 100644 >>>>--- a/scripts/module-common.lds >>>>+++ b/scripts/module-common.lds >>>>@@ -19,4 +19,6 @@ SECTIONS { >>>> >>>> . = ALIGN(8); >>>> .init_array 0 : { *(SORT(.init_array.*)) *(.init_array) } >>>>+ >>>>+ __jump_table 0 : ALIGN(8) { KEEP(*(__jump_table)) } >>>> } >>> >
Steven Rostedt <rostedt@goodmis.org> writes: > On Thu, 02 Mar 2017 22:18:30 +1100 > Michael Ellerman <mpe@ellerman.id.au> wrote: >> Michael Ellerman <mpe@ellerman.id.au> writes: >> > David Daney <david.daney@cavium.com> writes: >> >> Strict alignment became necessary with commit 3821fd35b58d >> >> ("jump_label: Reduce the size of struct static_key"), currently in >> >> linux-next, which uses the two least significant bits of pointers to >> >> __jump_table elements. >> > >> > It would obviously be nice if this could go in before the commit that >> > exposes the breakage, but I guess that's problematic because Steve >> > doesn't want to rebase the tracing tree. >> > >> > Steve I think you've already sent your pull request for this cycle? So I >> > guess if this can go in your first batch of fixes? >> >> Ugh. Was looking at the wrong tree - Linus has already merged the commit >> in question, so the above is all moot. > > No problem. I've got some other "fixes" to push to Linus. That's what > the -rc releases are for. To fix up breakage from the merge window ;-) Yep, no drama. > I'll pull this into my tree. Thanks. cheers
diff --git a/scripts/module-common.lds b/scripts/module-common.lds index 73a2c7d..53234e8 100644 --- a/scripts/module-common.lds +++ b/scripts/module-common.lds @@ -19,4 +19,6 @@ SECTIONS { . = ALIGN(8); .init_array 0 : { *(SORT(.init_array.*)) *(.init_array) } + + __jump_table 0 : ALIGN(8) { KEEP(*(__jump_table)) } }