aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2009-06-24 02:13:50 -0400
committerTejun Heo <tj@kernel.org>2009-06-24 02:13:50 -0400
commit7c756e6e19e71f0327760d8955f7077118ebb2b1 (patch)
treee561b364701e974d44511445cb237d0039d3603b /lib
parent245b2e70eabd797932adb263a65da0bab3711753 (diff)
percpu: implement optional weak percpu definitions
Some archs (alpha and s390) need to use weak definitions for percpu variables in modules so that the compiler generates external references for them. This patch implements weak percpu definitions which arch can enable by defining ARCH_NEEDS_WEAK_PER_CPU in arch percpu header file. This weak definition adds the following two restrictions on percpu variable definitions. 1. percpu symbols must be unique whether static or not 2. percpu variables can't be defined inside a function To ensure that these restrictions are observed in generic code, config option DEBUG_FORCE_WEAK_PER_CPU enables weak percpu definitions for all cases. This patch is inspired by Ivan Kokshaysky's alpha percpu patch. [ Impact: stricter rules for percpu variables, one more debug config option ] Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Ingo Molnar <mingo@elte.hu> Cc: David Howells <dhowells@redhat.com> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Diffstat (limited to 'lib')
-rw-r--r--lib/Kconfig.debug15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 23067ab1a73c..77e0d8b1b7c5 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -777,6 +777,21 @@ config DEBUG_BLOCK_EXT_DEVT
777 777
778 Say N if you are unsure. 778 Say N if you are unsure.
779 779
780config DEBUG_FORCE_WEAK_PER_CPU
781 bool "Force weak per-cpu definitions"
782 depends on DEBUG_KERNEL
783 help
784 s390 and alpha require percpu variables in modules to be
785 defined weak to work around addressing range issue which
786 puts the following two restrictions on percpu variable
787 definitions.
788
789 1. percpu symbols must be unique whether static or not
790 2. percpu variables can't be defined inside a function
791
792 To ensure that generic code follows the above rules, this
793 option forces all percpu variables to be defined as weak.
794
780config LKDTM 795config LKDTM
781 tristate "Linux Kernel Dump Test Tool Module" 796 tristate "Linux Kernel Dump Test Tool Module"
782 depends on DEBUG_KERNEL 797 depends on DEBUG_KERNEL