diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig index 747499a1b31ef709fb42bed7f0c0acca23a07a74..f6037b2da25ef6f9af5ed31187afac45058c7256 100644 --- a/arch/frv/Kconfig +++ b/arch/frv/Kconfig @@ -22,6 +22,10 @@ config GENERIC_FIND_NEXT_BIT bool default y +config GENERIC_FIND_BIT_LE + bool + default y + config GENERIC_HWEIGHT bool default y diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index 6df692d1475f7ffb2549ab62929374a2daafcb54..9624db193e3cef301598f0c56e545c9f6d2fe7a4 100644 --- a/arch/h8300/Kconfig +++ b/arch/h8300/Kconfig @@ -45,6 +45,10 @@ config GENERIC_FIND_NEXT_BIT bool default y +config GENERIC_FIND_BIT_LE + bool + default y + config GENERIC_HWEIGHT bool default y diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig index ef4c1e442be34a4d9c3289e1b5b9d7b262617047..62afe23c9a49b9f3a645269f5a819f5f913ba310 100644 --- a/arch/m32r/Kconfig +++ b/arch/m32r/Kconfig @@ -260,6 +260,10 @@ config GENERIC_FIND_NEXT_BIT bool default y +config GENERIC_FIND_BIT_LE + bool + default y + config GENERIC_HWEIGHT bool default y diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig index b5424cf948e64430ccdd635c17c1fdfa892e42b8..5795f58728ca884ce9c30b4cfb87e3080dd138ed 100644 --- a/arch/m68knommu/Kconfig +++ b/arch/m68knommu/Kconfig @@ -42,6 +42,10 @@ config GENERIC_FIND_NEXT_BIT bool default y +config GENERIC_FIND_BIT_LE + bool + default y + config GENERIC_GPIO bool default n diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig index 922c4194c7bb909c493716d1d48a4bceb8b714f9..5f0cf0e32653e30931b5039134ca339287f5c586 100644 --- a/arch/microblaze/Kconfig +++ b/arch/microblaze/Kconfig @@ -37,6 +37,9 @@ config ARCH_HAS_ILOG2_U64 config GENERIC_FIND_NEXT_BIT def_bool y +config GENERIC_FIND_BIT_LE + def_bool y + config GENERIC_HWEIGHT def_bool y diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index d88983516e26118bff775f8d9c87f58e8163a88f..6e9811d40c9f57310af68020490a32fe09073a49 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -777,6 +777,10 @@ config GENERIC_FIND_NEXT_BIT bool default y +config GENERIC_FIND_BIT_LE + bool + default y + config GENERIC_HWEIGHT bool default y diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index fafdf30bea9e5fc040f0c629078680716a8caf50..9b1f427cdc3762b928aa6675f584b023eb82aea9 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig @@ -52,6 +52,10 @@ config GENERIC_FIND_NEXT_BIT bool default y +config GENERIC_FIND_BIT_LE + bool + default y + config GENERIC_BUG bool default y diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 71ba04721bebadb58132125da79b605c13a09d4f..ce9ff55e1026ed653cb2eb3086677f77a1f93af7 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -95,6 +95,10 @@ config GENERIC_FIND_NEXT_BIT bool default y +config GENERIC_FIND_BIT_LE + bool + default y + config GENERIC_GPIO bool help diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 2d264fa84959dde3488b79c8d0fd111b5df63a7e..1fbf0c7583d07ed48495886d57a7f14e25318a2e 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -75,6 +75,9 @@ config GENERIC_CSUM config GENERIC_FIND_NEXT_BIT def_bool y +config GENERIC_FIND_BIT_LE + def_bool y + config GENERIC_HWEIGHT def_bool y diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index e48f471be547109b04e4d2124ff8b4c9498a3fad..f766e6bf370ebb2e8972a0cbdfd28b54f752d97c 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -192,6 +192,10 @@ config GENERIC_FIND_NEXT_BIT bool default y +config GENERIC_FIND_BIT_LE + bool + default y + config GENERIC_HWEIGHT bool default y if !ULTRA_HAS_POPULATION_COUNT diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index d373d159e75e408eef28e722cc8401885e9ffd0a..72839190f5031ceffe64eb2249df73c377e2517c 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig @@ -21,6 +21,9 @@ config RWSEM_XCHGADD_ALGORITHM config GENERIC_FIND_NEXT_BIT def_bool y +config GENERIC_FIND_BIT_LE + def_bool y + config GENERIC_HWEIGHT def_bool y diff --git a/lib/Kconfig b/lib/Kconfig index 3a55a43c43ebb2dce87b15bf0a8bf2579cea1c84..23fa7a359db74008cbbb7d17599edcd480d76a97 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -22,6 +22,9 @@ config GENERIC_FIND_FIRST_BIT config GENERIC_FIND_NEXT_BIT bool +config GENERIC_FIND_BIT_LE + bool + config GENERIC_FIND_LAST_BIT bool default y diff --git a/lib/Makefile b/lib/Makefile index 8c9de027ebb14f716b6a51215e41e7e49e77f4b3..d7872b5c4c1c375d92b5dd7468636a132932ca8f 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -40,6 +40,7 @@ lib-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o lib-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += rwsem.o lib-$(CONFIG_GENERIC_FIND_FIRST_BIT) += find_next_bit.o lib-$(CONFIG_GENERIC_FIND_NEXT_BIT) += find_next_bit.o +lib-$(CONFIG_GENERIC_FIND_BIT_LE) += find_next_bit.o obj-$(CONFIG_GENERIC_FIND_LAST_BIT) += find_last_bit.o CFLAGS_hweight.o = $(subst $(quote),,$(CONFIG_ARCH_HWEIGHT_CFLAGS)) diff --git a/lib/find_next_bit.c b/lib/find_next_bit.c index 7667c3d907d31ec8eea184fadd764038ec498d17..b0a8767282bf674fe980f17b5d192103e5ffc4f5 100644 --- a/lib/find_next_bit.c +++ b/lib/find_next_bit.c @@ -160,6 +160,7 @@ EXPORT_SYMBOL(find_first_zero_bit); #endif /* CONFIG_GENERIC_FIND_FIRST_BIT */ #ifdef __BIG_ENDIAN +#ifdef CONFIG_GENERIC_FIND_BIT_LE /* include/linux/byteorder does not support "unsigned long" type */ static inline unsigned long ext2_swabp(const unsigned long * x) @@ -273,4 +274,6 @@ unsigned long find_next_bit_le(const void *addr, unsigned return result + __ffs(ext2_swab(tmp)); } EXPORT_SYMBOL(find_next_bit_le); + +#endif /* CONFIG_GENERIC_FIND_BIT_LE */ #endif /* __BIG_ENDIAN */