public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jesper Nilsson <jesper.nilsson@axis.com>
To: Yuusei KUWANA <kuwana@nyanyan.to>
Cc: Linux Kernel list <linux-kernel@vger.kernel.org>,
	mikael.starvik@axis.com
Subject: Re: [PATCH] arch/cris/arch-v10/vmlinux.lds.S fix boot problem
Date: Fri, 21 Dec 2007 16:14:04 +0100	[thread overview]
Message-ID: <20071221151404.GM10888@axis.com> (raw)
In-Reply-To: <47636D45.6010006@nyanyan.to>


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

> Signed-off-by: Yuusei KUWANA <ryu@nyanyan.to>
> ---
>  arch/cris/arch-v10/vmlinux.lds.S |   13 ++++---------
>  1 files changed, 4 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/cris/arch-v10/vmlinux.lds.S b/arch/cris/arch-v10/vmlinux.lds.S
> index 9859d49..c5bab0e 100644
> --- a/arch/cris/arch-v10/vmlinux.lds.S
> +++ b/arch/cris/arch-v10/vmlinux.lds.S
> @@ -53,26 +53,22 @@ SECTIONS
>    	.data.init_task : { *(.data.init_task) }
>  
>    	. = ALIGN(8192);              /* Init code and data */
> -  	__init_begin = .;
>  	.init.text : { 
>  		   _sinittext = .;
>  		   *(.init.text)
>  		   _einittext = .;
>  	}
> +  	__init_begin = .;
>    	.init.data : { *(.init.data) }
> +  	__init_end = .;
> +
>    	. = ALIGN(16);
>    	__setup_start = .;
>    	.init.setup : { *(.init.setup) }
>    	__setup_end = .;
>    	.initcall.init : {
>  		__initcall_start = .;
> -		*(.initcall1.init);
> -		*(.initcall2.init);
> -		*(.initcall3.init);
> -		*(.initcall4.init);
> -		*(.initcall5.init);
> -		*(.initcall6.init);
> -		*(.initcall7.init);
> +			INITCALLS
>  		__initcall_end = .;	
>  	}
>  
> @@ -97,7 +93,6 @@ SECTIONS
>  #endif
>  	
>  	__vmlinux_end = .;            /* last address of the physical file */
> -  	__init_end = .;
>  
>  	__data_end = . ;              /* Move to _edata ? */
>  	__bss_start = .;              /* BSS */
> -- 
> 1.5.3

diff --git a/arch/cris/arch-v10/vmlinux.lds.S b/arch/cris/arch-v10/vmlinux.lds.S
index 9859d49..30fa872 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);
+		INIT_CALLS
 		__initcall_end = .;	
 	}
 
@@ -88,11 +82,15 @@ 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
 	

/^JN - Jesper Nilsson
--
               Jesper Nilsson -- jesper.nilsson@axis.com

  reply	other threads:[~2007-12-21 15:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-15  5:59 [PATCH] arch/cris/arch-v10/vmlinux.lds.S fix boot problem Yuusei KUWANA
2007-12-21 15:14 ` Jesper Nilsson [this message]
2007-12-21 15:54   ` Jesper Nilsson
2007-12-21 16:07     ` Jesper Nilsson
2007-12-22  8:37       ` Sam Ravnborg
2008-01-03 17:02         ` Jesper Nilsson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071221151404.GM10888@axis.com \
    --to=jesper.nilsson@axis.com \
    --cc=kuwana@nyanyan.to \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mikael.starvik@axis.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox