summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander van Heukelum <heukelum@mailshack.com>2008-04-01 17:41:26 +0200
committerIngo Molnar <mingo@elte.hu>2008-04-26 19:21:16 +0200
commit2aba6925fdb96428d1129a61b1233597a03a387b (patch)
tree9ab7d292e681012c43671dd207b20e2c6a10ebcb
parent77b9bd9c49442407804c37bcc82021a35277f83c (diff)
downloadlinux-2aba6925fdb96428d1129a61b1233597a03a387b.tar.gz
linux-2aba6925fdb96428d1129a61b1233597a03a387b.tar.bz2
linux-2aba6925fdb96428d1129a61b1233597a03a387b.zip
x86: switch 64-bit to generic find_first_bit
Switch x86_64 to generic find_first_bit. The x86_64-specific implementation is not removed. Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--arch/x86/Kconfig2
-rw-r--r--arch/x86/lib/bitops_64.c2
-rw-r--r--include/asm-x86/bitops_64.h2
3 files changed, 5 insertions, 1 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 1a69b68ff6cc..700447738e73 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -78,7 +78,7 @@ config GENERIC_BUG
depends on BUG
config GENERIC_FIND_FIRST_BIT
- def_bool X86_32
+ def_bool y
config GENERIC_FIND_NEXT_BIT
def_bool y
diff --git a/arch/x86/lib/bitops_64.c b/arch/x86/lib/bitops_64.c
index 0eeb704d2513..568467d390c0 100644
--- a/arch/x86/lib/bitops_64.c
+++ b/arch/x86/lib/bitops_64.c
@@ -1,3 +1,4 @@
+#ifndef CONFIG_GENERIC_FIND_FIRST_BIT
#include <linux/bitops.h>
#undef find_first_zero_bit
@@ -105,3 +106,4 @@ long find_first_bit(const unsigned long * addr, unsigned long size)
EXPORT_SYMBOL(find_first_bit);
EXPORT_SYMBOL(find_first_zero_bit);
+#endif
diff --git a/include/asm-x86/bitops_64.h b/include/asm-x86/bitops_64.h
index d13352087191..4081d7ecc2bd 100644
--- a/include/asm-x86/bitops_64.h
+++ b/include/asm-x86/bitops_64.h
@@ -5,6 +5,7 @@
* Copyright 1992, Linus Torvalds.
*/
+#ifndef CONFIG_GENERIC_FIND_FIRST_BIT
extern long find_first_zero_bit(const unsigned long *addr, unsigned long size);
extern long find_first_bit(const unsigned long *addr, unsigned long size);
@@ -24,6 +25,7 @@ static inline long __scanbit(unsigned long val, unsigned long max)
((__builtin_constant_p((size)) && (size) <= BITS_PER_LONG \
? (__scanbit(~*(unsigned long *)(addr), (size))) \
: find_first_zero_bit((addr), (size))))
+#endif
static inline void set_bit_string(unsigned long *bitmap, unsigned long i,
int len)