lkml.org 
[lkml]   [2009]   [Dec]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [REGRESSION] um: CONFIG_STATIC_LINK=y broken
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@ksplice.com>
Reported-by: richard -rw- weinberger <richard.weinberger@gmail.com>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: user-mode-linux-devel@lists.sourceforge.net
---
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

\
 
 \ /
  Last update: 2009-12-22 03:17    [W:0.034 / U:0.064 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site