summaryrefslogtreecommitdiff
path: root/arch/ia64/kernel/vmlinux.lds.S
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2008-09-30 03:39:19 +0400
committerTony Luck <tony.luck@intel.com>2008-09-30 03:39:19 +0400
commitc459ce8b5a7d933a3bcf6915ab17ac1e036e2ac4 (patch)
treeadef9c1bd10dbb3eea5f1be8563db7e6adf3f3e5 /arch/ia64/kernel/vmlinux.lds.S
parent94aca1dac6f6d21f4b07e4864baf7768cabcc6e7 (diff)
downloadlinux-c459ce8b5a7d933a3bcf6915ab17ac1e036e2ac4.tar.xz
[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.S8
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*)