alpha: switch to dynamic percpu allocator
authorTejun Heo <tj@kernel.org>
Wed, 24 Jun 2009 06:13:52 +0000 (15:13 +0900)
committerTejun Heo <tj@kernel.org>
Wed, 24 Jun 2009 06:13:52 +0000 (15:13 +0900)
commit9b7dbc7dc0365a943af2d73b1376a6f0aac5dc0d
tree324bef0a494e20f415b8fb892fe9240fba638156
parent6088464cf1ae9fb3d2ccc0ec5feb3f5b971098d8
alpha: switch to dynamic percpu allocator

Alpha implements custom SHIFT_PERCPU_PTR for modules because percpu
area can be located far away from the 4G area where the module text is
located.  The custom SHIFT_PERCPU_PTR forces GOT usage using ldq
instruction with literal relocation; however, the relocation can't be
used with dynamically allocated percpu variables.  Fortunately,
similar result can be achieved by using weak percpu variable
definitions.

This patch makes alpha use weak definitions and switch to dynamic
percpu allocator.

asm/tlbflush.h was getting linux/sched.h via asm/percpu.h which no
longer needs it.  Include linux/sched.h directly in asm/tlbflush.h.

Compile tested.  Generation of litereal relocation verified.

This patch is based on Ivan Kokshaysky's alpha percpu patch.

[ Impact: use dynamic percpu allocator ]

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Richard Henderson <rth@twiddle.net>
arch/alpha/Kconfig
arch/alpha/include/asm/percpu.h
arch/alpha/include/asm/tlbflush.h