x86: switch 64-bit to generic find_first_bit
Alexander van Heukelum [Tue, 1 Apr 2008 15:41:26 +0000 (17:41 +0200)]
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>

arch/x86/Kconfig
arch/x86/lib/bitops_64.c
include/asm-x86/bitops_64.h

index 1a69b68..7004477 100644 (file)
@@ -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
index 0eeb704..568467d 100644 (file)
@@ -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
index d133520..4081d7e 100644 (file)
@@ -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)