Re: [REGRESSION] um: CONFIG_STATIC_LINK=y broken

From: Tim Abbott
Date: Mon Dec 21 2009 - 21:14:06 EST


On Tue, 22 Dec 2009, richard -rw- weinberger wrote:

> Adding the ALIGN(PAGE_SIZE) causes the segfault.
> But I cannot tell you why. :-(

OK, then the following patch should fix the regression by reverting that
unintentional change.

Someone should probably determine why the ALIGN causes a segfault, since
that is probably a bug, but I don't have time to do that investigation.

Richard, can you test that this patch fixes the issue for you?

(adding the UML maintainer and list to the thread).

-Tim Abbott

um: remove PAGE_SIZE alignment in linker script causing kernel segfault.

The linker script cleanup that I did in commit
5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 introduced an ALIGN(PAGE_SIZE)
when using INIT_TEXT_SECTION; this apparently causes the kernel to
segfault with CONFIG_STATIC_LINK=y.

I'm not certain why this would cause the kernel to segfault, but it seems
likely it is because previously it was the case that

__init_begin = _stext = _text = _sinittext

and with the extra ALIGN(PAGE_SIZE), _sinittext becomes different.

Signed-off-by: Tim Abbott <tabbott@xxxxxxxxxxx>
Reported-by: richard -rw- weinberger <richard.weinberger@xxxxxxxxx>
Cc: Jeff Dike <jdike@xxxxxxxxxxx>
Cc: user-mode-linux-devel@xxxxxxxxxxxxxxxxxxxxx
---
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 :
--
1.6.5.7
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/