From: Akinobu Mita Date: Thu, 26 May 2011 23:26:13 +0000 (-0700) Subject: m68knommu: use generic find_next_bit_le() X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=968d803c98410910fbadca031b6a873d4bc12dd5;p=linux-beck.git m68knommu: use generic find_next_bit_le() The implementation of find_next_bit_le() on m68knommu is identical with the generic implementation of find_next_bit_le(). Signed-off-by: Akinobu Mita Cc: Greg Ungerer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/arch/m68k/include/asm/bitops_no.h b/arch/m68k/include/asm/bitops_no.h index 52793ebc4471..72e85acdd7bd 100644 --- a/arch/m68k/include/asm/bitops_no.h +++ b/arch/m68k/include/asm/bitops_no.h @@ -321,50 +321,8 @@ found_middle: } #define find_next_zero_bit_le find_next_zero_bit_le -static inline unsigned long find_next_bit_le(const void *addr, unsigned - long size, unsigned long offset) -{ - const unsigned long *p = addr; - unsigned long result = offset & ~(BITS_PER_LONG - 1); - unsigned long tmp; - - if (offset >= size) - return size; - p += offset / BITS_PER_LONG; - size -= result; - offset &= (BITS_PER_LONG - 1UL); - if (offset) { - tmp = __swab32(*(p++)); - tmp &= (~0UL << offset); - if (size < BITS_PER_LONG) - goto found_first; - if (tmp) - goto found_middle; - size -= BITS_PER_LONG; - result += BITS_PER_LONG; - } - - while (size & ~(BITS_PER_LONG - 1)) { - tmp = *(p++); - if (tmp) - goto found_middle_swap; - result += BITS_PER_LONG; - size -= BITS_PER_LONG; - } - if (!size) - return result; - tmp = __swab32(*p); -found_first: - tmp &= (~0UL >> (BITS_PER_LONG - size)); - if (tmp == 0UL) /* Are any bits set? */ - return result + size; /* Nope. */ -found_middle: - return result + __ffs(tmp); - -found_middle_swap: - return result + __ffs(__swab32(tmp)); -} -#define find_next_bit_le find_next_bit_le +extern unsigned long find_next_bit_le(const void *addr, + unsigned long size, unsigned long offset); #endif /* __KERNEL__ */