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

From: Jesper Nilsson
Date: Fri Dec 21 2007 - 10:55:16 EST


...and of course I got a spurious "_" pasted into INITCALLS. Argh.
Corrected patch below.

diff --git a/arch/cris/arch-v10/vmlinux.lds.S b/arch/cris/arch-v10/vmlinux.lds.S
index 9859d49..ac98b2a 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,11 +82,16 @@ 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);
+
+ /*
+ * 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);
+ }
}
#endif



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/