aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-01-29 11:10:12 -0500
committerIngo Molnar <mingo@elte.hu>2009-01-29 11:18:54 -0500
commitdba3d36b2f0842ed7f25c33cd3a2ccdb3d0df9db (patch)
tree6373a843665115872a1476f43322c2e2ac185ea3
parent4369f1fb7cd4cf777312f43e1cb9aa5504fc4125 (diff)
Revert "generic, x86: fix __per_cpu_load relocation"
This reverts commit 5a611268b69f05262936dd177205acbce4471358. It is causing occasional boot crashes, caused by certain linker versions (GNU ld version 2.18.50.0.6-2 20080403) messing up: 82dcc000 D __per_cpu_load c16e6000 A __per_cpu_load_abs The __per_cpu_load value is out of whack. Hpa noticed the following detail: * (gdb) p/x -(0xc16e6000-0x82dcc000) * $2 = 0xc16e6000 * I.e. one is the other << 1 The two symbols should be equal. Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--include/asm-generic/vmlinux.lds.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index f3180a85c66a..53e21f36a802 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -451,18 +451,17 @@
451 * end offset. 451 * end offset.
452 */ 452 */
453#define PERCPU_VADDR(vaddr, phdr) \ 453#define PERCPU_VADDR(vaddr, phdr) \
454 VMLINUX_SYMBOL(__per_cpu_load_abs) = .; \ 454 VMLINUX_SYMBOL(__per_cpu_load) = .; \
455 .data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load_abs) \ 455 .data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load) \
456 - LOAD_OFFSET) { \ 456 - LOAD_OFFSET) { \
457 VMLINUX_SYMBOL(__per_cpu_start) = .; \ 457 VMLINUX_SYMBOL(__per_cpu_start) = .; \
458 VMLINUX_SYMBOL(__per_cpu_load) = LOADADDR(.data.percpu) + LOAD_OFFSET;\
459 *(.data.percpu.first) \ 458 *(.data.percpu.first) \
460 *(.data.percpu.page_aligned) \ 459 *(.data.percpu.page_aligned) \
461 *(.data.percpu) \ 460 *(.data.percpu) \
462 *(.data.percpu.shared_aligned) \ 461 *(.data.percpu.shared_aligned) \
463 VMLINUX_SYMBOL(__per_cpu_end) = .; \ 462 VMLINUX_SYMBOL(__per_cpu_end) = .; \
464 } phdr \ 463 } phdr \
465 . = VMLINUX_SYMBOL(__per_cpu_load_abs) + SIZEOF(.data.percpu); 464 . = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data.percpu);
466 465
467/** 466/**
468 * PERCPU - define output section for percpu area, simple version 467 * PERCPU - define output section for percpu area, simple version