Re: [PATCH] arch/cris/arch-v10/vmlinux.lds.S fix boot problem

From: Jesper Nilsson
Date: Fri Dec 21 2007 - 11:07:37 EST


Argh. Not my day, hopefully this is the last revision of the patch.

Best regards,

/Jesper

diff --git a/arch/cris/arch-v10/vmlinux.lds.S b/arch/cris/arch-v10/vmlinux.lds.S
index 9859d49..2afe1bd 100644
--- a/arch/cris/arch-v10/vmlinux.lds.S
+++ b/arch/cris/arch-v10/vmlinux.lds.S
@@ -23,7 +23,7 @@ SECTIONS
_stext = .;
__stext = .;
.text : {
- *(.text)
+ TEXT_TEXT
SCHED_TEXT
LOCK_TEXT
*(.fixup)
@@ -66,13 +66,7 @@ SECTIONS
__setup_end = .;
.initcall.init : {
__initcall_start = .;
- *(.initcall1.init);
- *(.initcall2.init);
- *(.initcall3.init);
- *(.initcall4.init);
- *(.initcall5.init);
- *(.initcall6.init);
- *(.initcall7.init);
+ INITCALLS
__initcall_end = .;
}

@@ -88,16 +82,21 @@ SECTIONS
__initramfs_start = .;
*(.init.ramfs)
__initramfs_end = .;
- /* We fill to the next page, so we can discard all init
- pages without needing to consider what payload might be
- appended to the kernel image. */
- FILL (0);
- . = ALIGN (8192);
}
#endif
-
__vmlinux_end = .; /* last address of the physical file */
- __init_end = .;
+
+ /*
+ * We fill to the next page, so we can discard all init
+ * pages without needing to consider what payload might be
+ * appended to the kernel image.
+ */
+ .init.fill : {
+ FILL (0);
+ . = ALIGN (8192);
+ }
+
+ __init_end = .;

__data_end = . ; /* Move to _edata ? */
__bss_start = .; /* BSS */

> On Fri, Dec 21, 2007 at 04:14:04PM +0100, Jesper Nilsson wrote:
> >
> > On Sat, Dec 15, 2007 at 02:59:33PM +0900, Yuusei KUWANA wrote:
> > > arch/cris/arch-v10/vmlinux.lds.S
> > > fix boot problem
> > > * too old initcall style. replace INITCALLS macro
> > > * __init_begin, __init_end move for free_initmem()
> >
> > Hi,
> >
> > The conversion to INITCALLS is ok (I have the same change here),
> > but I'm curious what problem you are solving with moving __init_begin and
> > __init_end to only include the .init.data.
> >
> > If there is use of initcalls/data outside init then that is a bug and
> > should be fixed, not worked around.
> >
> > There might however be another problem that Mikael Starvik told me about,
> > the padding between initdata and the next section had gone AWOL,
> > which made the free_initmem() destroy useful data.
> >
> > With the attached patch (and a lot of other patches) I am successful in
> > booting an Axis Devboard82+.
> > Could you please try the included patch and see if that solves your problem?
> >
> > > Note: with this patch kernel boot and mount root,
> > > but after init done, kernel panic at do_signal() ...
> >
> > I have a patch in the pipe that should fix this, will send it in just
> > a small while.
> >
> > > ryu
> >
> > Thank you for your help!
> >
> > Best regards,
> >
> > /Jesper
>
> /^JN - Jesper Nilsson
> --
> Jesper Nilsson -- jesper.nilsson@xxxxxxxx
> --
> 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/
/^JN - Jesper Nilsson
--
Jesper Nilsson -- jesper.nilsson@xxxxxxxx
--
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/