2014-01-26 20:13:24

by Zhihui Zhang

[permalink] [raw]
Subject: [PATCH] Use LOAD_PHYSICAL_ADDR in vmlinux.lds.S

This unifies the way to specify start VMA on both 32 and 64-bit platforms.
I would like to remove __PHYSICAL_START as well, but that appears to be harder.

Signed-off-by: Zhihui Zhang <[email protected]>
---
arch/x86/kernel/vmlinux.lds.S | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
index da6b35a..e81bf49 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -81,11 +81,10 @@ PHDRS {

SECTIONS
{
-#ifdef CONFIG_X86_32
. = LOAD_OFFSET + LOAD_PHYSICAL_ADDR;
+#ifdef CONFIG_X86_32
phys_startup_32 = startup_32 - LOAD_OFFSET;
#else
- . = __START_KERNEL;
phys_startup_64 = startup_64 - LOAD_OFFSET;
#endif

--
1.8.1.2


2014-01-26 21:12:42

by David Rientjes

[permalink] [raw]
Subject: Re: [PATCH] Use LOAD_PHYSICAL_ADDR in vmlinux.lds.S

On Sun, 26 Jan 2014, Zhihui Zhang wrote:

> diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
> index da6b35a..e81bf49 100644
> --- a/arch/x86/kernel/vmlinux.lds.S
> +++ b/arch/x86/kernel/vmlinux.lds.S
> @@ -81,11 +81,10 @@ PHDRS {
>
> SECTIONS
> {
> -#ifdef CONFIG_X86_32
> . = LOAD_OFFSET + LOAD_PHYSICAL_ADDR;
> +#ifdef CONFIG_X86_32
> phys_startup_32 = startup_32 - LOAD_OFFSET;
> #else
> - . = __START_KERNEL;
> phys_startup_64 = startup_64 - LOAD_OFFSET;
> #endif
>

Makes sense, but any reason to not make LOAD_PHYSICAL_ADDR to use ALIGN()?

(You'll also want to prefix the patch title in the subject line with
"x86, boot:" and cc [email protected] on patches like this.)