diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-01-29 11:10:12 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-29 11:18:54 -0500 |
commit | dba3d36b2f0842ed7f25c33cd3a2ccdb3d0df9db (patch) | |
tree | 6373a843665115872a1476f43322c2e2ac185ea3 | |
parent | 4369f1fb7cd4cf777312f43e1cb9aa5504fc4125 (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.h | 7 |
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 |