diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2012-07-30 17:41:09 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-30 20:25:16 -0400 |
commit | 7463449b8287162454d7e00bf7fd2c64f72c1dc8 (patch) | |
tree | c9dd3007ce4cd59489c0cb7b55b0240aa8bbd865 /lib | |
parent | 6017b485caeae5915956190b4f3d8307021e785d (diff) |
atomic64_test: simplify the #ifdef for atomic64_dec_if_positive() test
Introduce CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE and use this instead
of the multitude of #if defined() checks in atomic64_test.c
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Kconfig | 3 | ||||
-rw-r--r-- | lib/atomic64_test.c | 5 |
2 files changed, 5 insertions, 3 deletions
diff --git a/lib/Kconfig b/lib/Kconfig index 8269d56dcdaa..72c1d4693068 100644 --- a/lib/Kconfig +++ b/lib/Kconfig | |||
@@ -340,6 +340,9 @@ config NLATTR | |||
340 | config GENERIC_ATOMIC64 | 340 | config GENERIC_ATOMIC64 |
341 | bool | 341 | bool |
342 | 342 | ||
343 | config ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE | ||
344 | def_bool y if GENERIC_ATOMIC64 | ||
345 | |||
343 | config LRU_CACHE | 346 | config LRU_CACHE |
344 | tristate | 347 | tristate |
345 | 348 | ||
diff --git a/lib/atomic64_test.c b/lib/atomic64_test.c index cb99b91c3a1d..00bca223d1e1 100644 --- a/lib/atomic64_test.c +++ b/lib/atomic64_test.c | |||
@@ -114,8 +114,7 @@ static __init int test_atomic64(void) | |||
114 | r += one; | 114 | r += one; |
115 | BUG_ON(v.counter != r); | 115 | BUG_ON(v.counter != r); |
116 | 116 | ||
117 | #if defined(CONFIG_X86) || defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \ | 117 | #ifdef CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE |
118 | defined(CONFIG_S390) || defined(_ASM_GENERIC_ATOMIC64_H) || defined(CONFIG_ARM) | ||
119 | INIT(onestwos); | 118 | INIT(onestwos); |
120 | BUG_ON(atomic64_dec_if_positive(&v) != (onestwos - 1)); | 119 | BUG_ON(atomic64_dec_if_positive(&v) != (onestwos - 1)); |
121 | r -= one; | 120 | r -= one; |
@@ -129,7 +128,7 @@ static __init int test_atomic64(void) | |||
129 | BUG_ON(atomic64_dec_if_positive(&v) != (-one - one)); | 128 | BUG_ON(atomic64_dec_if_positive(&v) != (-one - one)); |
130 | BUG_ON(v.counter != r); | 129 | BUG_ON(v.counter != r); |
131 | #else | 130 | #else |
132 | #warning Please implement atomic64_dec_if_positive for your architecture, and add it to the IF above | 131 | #warning Please implement atomic64_dec_if_positive for your architecture and select the above Kconfig symbol |
133 | #endif | 132 | #endif |
134 | 133 | ||
135 | INIT(onestwos); | 134 | INIT(onestwos); |