diff options
author | Tony Luck <tony.luck@intel.com> | 2008-09-29 16:39:19 -0700 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2008-09-29 16:39:19 -0700 |
commit | c459ce8b5a7d933a3bcf6915ab17ac1e036e2ac4 (patch) | |
tree | adef9c1bd10dbb3eea5f1be8563db7e6adf3f3e5 /arch/ia64/kernel/vmlinux.lds.S | |
parent | 94aca1dac6f6d21f4b07e4864baf7768cabcc6e7 (diff) |
[IA64] Put the space for cpu0 per-cpu area into .data section
Initial fix for making sure that we can access percpu variables
in all C code (commit: 10617bbe84628eb18ab5f723d3ba35005adde143)
inadvertantly allocated the memory in the "percpu" section of
the vmlinux ELF executable. This confused kexec/dump.
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/ia64/kernel/vmlinux.lds.S | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S index de71da811cd6..10a7d47e8510 100644 --- a/arch/ia64/kernel/vmlinux.lds.S +++ b/arch/ia64/kernel/vmlinux.lds.S @@ -215,9 +215,6 @@ SECTIONS /* Per-cpu data: */ percpu : { } :percpu . = ALIGN(PERCPU_PAGE_SIZE); -#ifdef CONFIG_SMP - . = . + PERCPU_PAGE_SIZE; /* cpu0 per-cpu space */ -#endif __phys_per_cpu_start = .; .data.percpu PERCPU_ADDR : AT(__phys_per_cpu_start - LOAD_OFFSET) { @@ -233,6 +230,11 @@ SECTIONS data : { } :data .data : AT(ADDR(.data) - LOAD_OFFSET) { +#ifdef CONFIG_SMP + . = ALIGN(PERCPU_PAGE_SIZE); + __cpu0_per_cpu = .; + . = . + PERCPU_PAGE_SIZE; /* cpu0 per-cpu space */ +#endif DATA_DATA *(.data1) *(.gnu.linkonce.d*) |