OpenCloudOS-Kernel/arch/alpha
Tejun Heo b01e8dc343 alpha: fix percpu build breakage
alpha percpu access requires custom SHIFT_PERCPU_PTR() definition for
modules to work around addressing range limitation.  This is done via
generating inline assembly using C preprocessing which forces the
assembler to generate external reference.  This happens behind the
compiler's back and makes the compiler think that static percpu variables
in modules are unused.

This used to be worked around by using __unused attribute for percpu
variables which prevent the compiler from omitting the variable; however,
recent declare/definition attribute unification change broke this as
__used can't be used for declaration.  Also, in the process,
PER_CPU_ATTRIBUTES definition in alpha percpu.h got broken.

This patch adds PER_CPU_DEF_ATTRIBUTES which is only used for definitions
and make alpha use it to add __used for percpu variables in modules.  This
also fixes the PER_CPU_ATTRIBUTES double definition bug.

Signed-off-by: Tejun Heo <tj@kernel.org>
Tested-by: maximilian attems <max@stro.at>
Acked-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Richard Henderson <rth@twiddle.net>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-30 18:55:59 -07:00
..
boot inflate: refactor inflate malloc code 2008-07-25 10:53:28 -07:00
include/asm alpha: fix percpu build breakage 2009-06-30 18:55:59 -07:00
kernel alpha: bad macro expansion, parameter is member 2009-06-16 19:47:46 -07:00
lib remove __attribute_used__ 2008-01-28 23:21:18 +01:00
math-emu alpha: fix conversion from denormal float to double 2008-01-17 15:38:59 -08:00
mm Move FAULT_FLAG_xyz into handle_mm_fault() callers 2009-06-21 13:08:22 -07:00
oprofile oprofile: more whitespace fixes 2008-10-15 20:55:51 +02:00
Kconfig alpha: use syscall wrappers 2009-01-29 18:04:44 -08:00
Kconfig.debug alpha/parisc: remove config variable DEBUG_RWLOCK 2008-02-06 10:41:03 -08:00
Makefile alpha: link failure fix 2008-06-20 16:46:10 -07:00
defconfig alpha/parisc: remove config variable DEBUG_RWLOCK 2008-02-06 10:41:03 -08:00