Re: [RFC PATCH v2, part4 03/39] c6x: normalize global variablesexported by vmlinux.lds

From: Mark Salter
Date: Mon Mar 25 2013 - 13:58:53 EST


On Sun, 2013-03-24 at 15:24 +0800, Jiang Liu wrote:
> Normalize global variables exported by vmlinux.lds to conform usage
> guidelines from include/asm-generic/sections.h.
>
> Use _text to mark the start of the kernel image including the head text,
> and _stext to mark the start of the .text section.
>
> This patch also fixes possible bugs due to current address layout that
> [__init_begin, __init_end] is a sub-range of [_stext, _etext] and pages
> within range [__init_begin, __init_end] will be freed by free_initmem().

I won't have time to look at this in detail until later this week, but
the reason for that layout is because c6x commonly stores text in flash.
Not all of the xip support is in-tree yet, but when it is, we don't want
to free init text.

--Mark

>
> Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxx>
> Cc: Mark Salter <msalter@xxxxxxxxxx>
> Cc: Aurelien Jacquiot <a-jacquiot@xxxxxx>
> Cc: linux-c6x-dev@xxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> ---
> arch/c6x/kernel/vmlinux.lds.S | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/c6x/kernel/vmlinux.lds.S b/arch/c6x/kernel/vmlinux.lds.S
> index 1d81c4c..279d807 100644
> --- a/arch/c6x/kernel/vmlinux.lds.S
> +++ b/arch/c6x/kernel/vmlinux.lds.S
> @@ -54,16 +54,15 @@ SECTIONS
> }
>
> . = ALIGN(PAGE_SIZE);
> + __init_begin = .;
> .init :
> {
> - _stext = .;
> _sinittext = .;
> HEAD_TEXT
> INIT_TEXT
> _einittext = .;
> }
>
> - __init_begin = _stext;
> INIT_DATA_SECTION(16)
>
> PERCPU_SECTION(128)
> @@ -74,6 +73,7 @@ SECTIONS
> .text :
> {
> _text = .;
> + _stext = .;
> TEXT_TEXT
> SCHED_TEXT
> LOCK_TEXT


--
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/