Revert "generic, x86: fix __per_cpu_load relocation"

This reverts commit 5a611268b6.

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>
This commit is contained in:
Ingo Molnar 2009-01-29 17:10:12 +01:00
parent 4369f1fb7c
commit dba3d36b2f

View File

@ -451,18 +451,17 @@
* end offset. * end offset.
*/ */
#define PERCPU_VADDR(vaddr, phdr) \ #define PERCPU_VADDR(vaddr, phdr) \
VMLINUX_SYMBOL(__per_cpu_load_abs) = .; \ VMLINUX_SYMBOL(__per_cpu_load) = .; \
.data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load_abs) \ .data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load) \
- LOAD_OFFSET) { \ - LOAD_OFFSET) { \
VMLINUX_SYMBOL(__per_cpu_start) = .; \ VMLINUX_SYMBOL(__per_cpu_start) = .; \
VMLINUX_SYMBOL(__per_cpu_load) = LOADADDR(.data.percpu) + LOAD_OFFSET;\
*(.data.percpu.first) \ *(.data.percpu.first) \
*(.data.percpu.page_aligned) \ *(.data.percpu.page_aligned) \
*(.data.percpu) \ *(.data.percpu) \
*(.data.percpu.shared_aligned) \ *(.data.percpu.shared_aligned) \
VMLINUX_SYMBOL(__per_cpu_end) = .; \ VMLINUX_SYMBOL(__per_cpu_end) = .; \
} phdr \ } phdr \
. = VMLINUX_SYMBOL(__per_cpu_load_abs) + SIZEOF(.data.percpu); . = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data.percpu);
/** /**
* PERCPU - define output section for percpu area, simple version * PERCPU - define output section for percpu area, simple version