Tejun Heo
3ac6cffea4
linker script: use separate simpler definition for PERCPU()
...
Impact: fix linker screwup on x86_32
Recent x86_64 zerobased patches introduced PERCPU_VADDR() to put
.data.percpu to a predefined address and re-defined PERCPU() in terms
of it. The new macro defined one extra symbol, __per_cpu_load, for
LMA of the section so that the init data could be accessed. This new
symbol introduced the following problems to x86_32.
1. If __per_cpu_load is defined outside of .data.percpu as an absolute
symbol, relocation generation for relocatable kernel fails due to
absolute relocation.
2. If __per_cpu_load is put inside .data.percpu with absolute address
assignment to work around #1 , linker gets confused and under
certain configurations ends up relocating the symbol against
.data.percpu such that the load address gets added on top of
already set load address.
As x86_32 doesn't use predefined address for .data.percpu, there's no
need for it to care about the possibility of __per_cpu_load being
different from __per_cpu_start.
This patch defines PERCPU() separately so that __per_cpu_load is
defined inside .data.percpu so that everything is ordinary
linking-wise.
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-30 23:27:46 +01:00
..
bitops
x86, generic: mark complex bitops.h inlines as __always_inline
2009-01-13 18:56:30 +01:00
4level-fixup.h
atomic.h
atomic: fix a typo in atomic_long_xchg()
2008-12-10 08:01:53 -08:00
audit_change_attr.h
audit_dir_write.h
audit_read.h
audit_signal.h
audit_write.h
[PATCH] asm/generic: fix bug - kernel fails to build when enable some common audit code on Blackfin
2008-12-09 02:27:39 -05:00
bitops.h
remove __KERNEL__ tests of unexported headers under asm-generic/
2008-04-30 08:29:54 -07:00
bug.h
documentation: when to BUG(), and when to not BUG()
2009-01-06 15:59:13 -08:00
cmpxchg-local.h
Add cmpxchg_local to asm-generic for per cpu atomic operations
2008-02-07 08:42:30 -08:00
cmpxchg.h
Add cmpxchg_local to asm-generic for per cpu atomic operations
2008-02-07 08:42:30 -08:00
cputime.h
device.h
div64.h
rename div64_64 to div64_u64
2008-05-01 08:03:58 -07:00
dma-coherent.h
generic: per-device coherent dma allocator
2008-06-30 12:51:05 +02:00
dma-mapping-broken.h
dma-mapping: add the device argument to dma_mapping_error()
2008-07-26 12:00:03 -07:00
dma-mapping.h
dma-mapping: add the device argument to dma_mapping_error()
2008-07-26 12:00:03 -07:00
emergency-restart.h
errno-base.h
errno.h
fcntl.h
futex.h
remove __KERNEL__ tests of unexported headers under asm-generic/
2008-04-30 08:29:54 -07:00
gpio.h
gpiolib: request/free hooks
2008-10-16 11:21:40 -07:00
ide_iops.h
int-l64.h
types: add C99-style constructors to <asm-generic/int-*.h>
2008-05-02 16:18:42 -07:00
int-ll64.h
asm-generic/int-ll64.h: always provide __{s,u}64
2008-07-25 10:53:27 -07:00
ioctl.h
Make ioctl.h compatible with userland
2008-08-12 16:07:31 -07:00
iomap.h
generic: add ioremap_wc() interface wrapper
2008-04-24 23:40:47 +02:00
irq_regs.h
Kbuild
types: create <asm-generic/int-*.h>
2008-05-02 16:18:19 -07:00
Kbuild.asm
byteorder: make swab.h include asm/swab.h like a regular header
2009-01-14 19:56:50 -08:00
kdebug.h
asm-generic: define DIE_OOPS in asm-generic
2008-10-27 11:39:03 +01:00
libata-portmap.h
local.h
remove linux/hardirq.h from asm-generic/local.h
2009-01-06 15:59:13 -08:00
memory_model.h
mm: remove CONFIG_OUT_OF_LINE_PFN_TO_PAGE
2009-01-06 15:59:10 -08:00
mm_hooks.h
mman.h
mutex-dec.h
mutex: speed up generic mutex implementations
2008-10-23 09:18:20 -07:00
mutex-null.h
mutex-xchg.h
mutex: speed up generic mutex implementations
2008-10-23 09:18:20 -07:00
page.h
remove __KERNEL__ tests of unexported headers under asm-generic/
2008-04-30 08:29:54 -07:00
pci-dma-compat.h
dma-mapping: add the device argument to dma_mapping_error()
2008-07-26 12:00:03 -07:00
pci.h
percpu.h
percpu: add optimized generic percpu accessors
2009-01-16 14:20:31 +01:00
pgtable-nopmd.h
include/asm-generic/pgtable-nopmd.h: macros are noxious, reason #435
2008-07-28 16:30:21 -07:00
pgtable-nopud.h
pgtable.h
x86 PAT: change track_pfn_vma_new to take pgprot_t pointer param
2009-01-13 19:13:01 +01:00
poll.h
resource.h
rtc.h
alpha: fix RTC on marvel
2009-01-15 16:39:40 -08:00
sections.h
x86: make percpu symbols zerobased on SMP
2009-01-16 14:19:14 +01:00
siginfo.h
signals: demultiplexing SIGTRAP signal
2008-09-23 13:26:52 +02:00
signal.h
statfs.h
Make <asm-generic/statfs.h> suitable for 64-bit platforms.
2008-09-04 09:46:08 +01:00
syscall.h
tracehook: comment pasto fixes
2008-09-05 14:39:38 -07:00
termios.h
tty: let architectures override the user/kernel macros.
2008-02-08 09:22:24 -08:00
tlb.h
topology.h
cpumask: Introduce cpumask_of_{node,pcibus} to replace {node,pcibus}_to_cpumask
2008-12-13 21:20:27 +10:30
uaccess.h
vmlinux.lds.h
linker script: use separate simpler definition for PERCPU()
2009-01-30 23:27:46 +01:00
xor.h