[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080205192236.GA26426@uranus.ravnborg.org>
Date: Tue, 5 Feb 2008 20:22:36 +0100
From: Sam Ravnborg <sam@...nborg.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Ingo Molnar <mingo@...e.hu>, Thomas Gleixner <tglx@...utronix.de>,
"H. Peter Anvin" <hpa@...or.com>, linux-kernel@...r.kernel.org
Subject: Re: [git pull] x86 updates
On Tue, Feb 05, 2008 at 10:47:07AM -0800, Linus Torvalds wrote:
>
>
> Ingo, Thomas,
> should we not do this?
>
> Otherwise, it seems we generate a section that isn't allocated?
>
> I think toolchain should add the right flags automatically for sections
> that start with ".[ro]data" and ".text", but not for the kernel-specific
> ".init.*" sections.
With a bit of help from the bin-utils people (Alan Modra) I recently
discovered that the linker generate sections with different names
when the flags differs, so fogetting "aw" casues the linekr to generate
a section named .init.data.1 (or some other number).
But I nevet got to investigate if ld does something magically
with these autogenerated section names.
But I added a check in modpost and it should warn about the
code below.
I would prefer the use of
__CPUINITDATA
__FINITDATA
as defined in linux/init.h but otherwise - yes it should be fixed.
With the use of __CPUINITDATA we can kill the ifdef too.
Sam
So something like this (untested - sorry):
I sneaked an extra ENTRY() in just to clean up a bit.
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index 4f283ad..09b38d5 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -250,18 +250,13 @@ ENTRY(secondary_startup_64)
lretq
/* SMP bootup changes these two */
-#ifndef CONFIG_HOTPLUG_CPU
- .pushsection .init.data
-#endif
+ __CPUINITDATA
.align 8
- .globl initial_code
-initial_code:
+ ENTRY(initial_code)
.quad x86_64_start_kernel
-#ifndef CONFIG_HOTPLUG_CPU
- .popsection
-#endif
- .globl init_rsp
-init_rsp:
+ __FINITDATA
+
+ ENTRY(init_rsp)
.quad init_thread_union+THREAD_SIZE-8
bad_address:
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists