[PATCH] module: set __jump_table alignment to 8

Subsystems: module support, the rest

STALE3460d REVIEWED: 1 (0M)

1 review trailer.

10 messages, 6 authors, 2017-03-03 · open the first message on its own page

[PATCH] module: set __jump_table alignment to 8

From: David Daney <hidden>
Date: 2017-03-01 22:06:11

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 <redacted>
Tested-by: Sachin Sant <redacted>
---
 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

Re: [PATCH] module: set __jump_table alignment to 8

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2017-03-02 10:58:26

David Daney [off-list ref] 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
quoted hunk
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 <redacted>
Tested-by: Sachin Sant <redacted>
---
 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

Re: [PATCH] module: set __jump_table alignment to 8

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2017-03-02 14:23:30

Michael Ellerman [off-list ref] writes:
David Daney [off-list ref] writes:
quoted
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

Re: [PATCH] module: set __jump_table alignment to 8

From: Jason Baron <jbaron@akamai.com>
Date: 2017-03-02 15:36:09

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 <redacted>
Tested-by: Sachin Sant <redacted>
---
Looks good to me.

Reviewed-by: Jason Baron <jbaron@akamai.com>

Thanks,

-Jason

Re: [PATCH] module: set __jump_table alignment to 8

From: Steven Rostedt <rostedt@goodmis.org>
Date: 2017-03-02 17:45:26

On Thu, 02 Mar 2017 22:18:30 +1100
Michael Ellerman [off-list ref] wrote:
Michael Ellerman [off-list ref] writes:
quoted
David Daney [off-list ref] writes:  
quoted
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

Re: [PATCH] module: set __jump_table alignment to 8

From: Steven Rostedt <rostedt@goodmis.org>
Date: 2017-03-02 18:12:54

Can I get an Ack from a module maintainer?

Thanks!

-- Steve


On Wed,  1 Mar 2017 14:04:53 -0800
David Daney [off-list ref] wrote:
quoted hunk
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 <redacted>
Tested-by: Sachin Sant <redacted>
---
 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)) }
 }

Re: [PATCH] module: set __jump_table alignment to 8

From: Jessica Yu <hidden>
Date: 2017-03-02 18:27:47

+++ Steven Rostedt [02/03/17 13:11 -0500]:
Can I get an Ack from a module maintainer?
Acked-by: Jessica Yu <redacted>

Thanks!

Jessica
On Wed,  1 Mar 2017 14:04:53 -0800
David Daney [off-list ref] wrote:
quoted
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 <redacted>
Tested-by: Sachin Sant <redacted>
---
 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)) }
 }

Re: [PATCH] module: set __jump_table alignment to 8

From: David Daney <hidden>
Date: 2017-03-02 21:02:54

On 03/02/2017 10:26 AM, Jessica Yu wrote:
quoted hunk
+++ Steven Rostedt [02/03/17 13:11 -0500]:
quoted
Can I get an Ack from a module maintainer?
Acked-by: Jessica Yu <redacted>

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?

quoted
On Wed,  1 Mar 2017 14:04:53 -0800
David Daney [off-list ref] wrote:
quoted
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 <redacted>
Tested-by: Sachin Sant <redacted>
---
 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)) }
 }

Re: [PATCH] module: set __jump_table alignment to 8

From: Jessica Yu <hidden>
Date: 2017-03-02 22:51:51

+++ David Daney [02/03/17 11:24 -0800]:
On 03/02/2017 10:26 AM, Jessica Yu wrote:
quoted
+++ Steven Rostedt [02/03/17 13:11 -0500]:
quoted
Can I get an Ack from a module maintainer?
Acked-by: Jessica Yu <redacted>

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
quoted
quoted
On Wed,  1 Mar 2017 14:04:53 -0800
David Daney [off-list ref] wrote:
quoted
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 <redacted>
Tested-by: Sachin Sant <redacted>
---
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)) }
}

Re: [PATCH] module: set __jump_table alignment to 8

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2017-03-03 03:44:38

Steven Rostedt [off-list ref] writes:
On Thu, 02 Mar 2017 22:18:30 +1100
Michael Ellerman [off-list ref] wrote:
quoted
Michael Ellerman [off-list ref] writes:
quoted
David Daney [off-list ref] writes:  
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help