Skip to content

Commit

Permalink
Revert "generic, x86: fix __per_cpu_load relocation"
Browse files Browse the repository at this point in the history
This reverts commit 5a61126.

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>
  • Loading branch information
Ingo Molnar committed Jan 29, 2009
1 parent 4369f1f commit dba3d36
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions include/asm-generic/vmlinux.lds.h
Original file line number Diff line number Diff line change
Expand Up @@ -451,18 +451,17 @@
* end offset.
*/
#define PERCPU_VADDR(vaddr, phdr) \
VMLINUX_SYMBOL(__per_cpu_load_abs) = .; \
.data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load_abs) \
VMLINUX_SYMBOL(__per_cpu_load) = .; \
.data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load) \
- LOAD_OFFSET) { \
VMLINUX_SYMBOL(__per_cpu_start) = .; \
VMLINUX_SYMBOL(__per_cpu_load) = LOADADDR(.data.percpu) + LOAD_OFFSET;\
*(.data.percpu.first) \
*(.data.percpu.page_aligned) \
*(.data.percpu) \
*(.data.percpu.shared_aligned) \
VMLINUX_SYMBOL(__per_cpu_end) = .; \
} 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
Expand Down

0 comments on commit dba3d36

Please sign in to comment.