|
|
@@ -0,0 +1,40 @@
|
|
|
+um: remove PAGE_SIZE alignment in linker script causing kernel segfault.
|
|
|
+
|
|
|
+The linker script cleanup that I did in commit
|
|
|
+5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 accidentally introduced an
|
|
|
+ALIGN(PAGE_SIZE) when converting to use INIT_TEXT_SECTION; Richard
|
|
|
+Weinberger reported that this causes the kernel to segfault with
|
|
|
+CONFIG_STATIC_LINK=y.
|
|
|
+
|
|
|
+I'm not certain why this extra alignment is a problem, but it seems likely
|
|
|
+it is because previously
|
|
|
+
|
|
|
+__init_begin = _stext = _text = _sinittext
|
|
|
+
|
|
|
+and with the extra ALIGN(PAGE_SIZE), _sinittext becomes different from the
|
|
|
+rest. So there is likely a bug here where something is assuming that
|
|
|
+_sinittext is the same as one of those other symbols. But reverting the
|
|
|
+accidental change fixes the regression, so it seems worth committing that
|
|
|
+now.
|
|
|
+
|
|
|
+Signed-off-by: Tim Abbott <[email protected]>
|
|
|
+Reported-by: richard -rw- weinberger <[email protected]>
|
|
|
+Cc: Jeff Dike <[email protected]>
|
|
|
+Cc: [email protected]
|
|
|
+---
|
|
|
+ arch/um/kernel/uml.lds.S | 2 +-
|
|
|
+ 1 files changed, 1 insertions(+), 1 deletions(-)
|
|
|
+
|
|
|
+diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S
|
|
|
+index e7a6cca..664f942 100644
|
|
|
+--- a/arch/um/kernel/uml.lds.S
|
|
|
++++ b/arch/um/kernel/uml.lds.S
|
|
|
+@@ -22,7 +22,7 @@ SECTIONS
|
|
|
+ _text = .;
|
|
|
+ _stext = .;
|
|
|
+ __init_begin = .;
|
|
|
+- INIT_TEXT_SECTION(PAGE_SIZE)
|
|
|
++ INIT_TEXT_SECTION(0)
|
|
|
+ . = ALIGN(PAGE_SIZE);
|
|
|
+
|
|
|
+ .text :
|