lkml.org 
[lkml]   [2011]   [Jan]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 10/27] bitops: introduce CONFIG_GENERIC_FIND_BIT_LE
    Date
    This introduces CONFIG_GENERIC_FIND_BIT_LE to tell whether to use generic
    implementation of find_*_bit_le() in lib/find_next_bit.c or not.

    For now we select CONFIG_GENERIC_FIND_BIT_LE for all architectures which
    enable CONFIG_GENERIC_FIND_NEXT_BIT.

    But m68knommu wants to define own faster find_next_zero_bit_le() and
    continues using generic find_next_{,zero_}bit().
    (CONFIG_GENERIC_FIND_NEXT_BIT and !CONFIG_GENERIC_FIND_BIT_LE)

    Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
    Cc: Greg Ungerer <gerg@uclinux.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    ---

    Change from v4:
    - no changes

    The whole series is available in the git branch at:
    git://git.kernel.org/pub/scm/linux/kernel/git/mita/linux-2.6.git le-bitops-v5

    arch/frv/Kconfig | 4 ++++
    arch/h8300/Kconfig | 4 ++++
    arch/m32r/Kconfig | 4 ++++
    arch/m68knommu/Kconfig | 4 ++++
    arch/microblaze/Kconfig | 3 +++
    arch/mips/Kconfig | 4 ++++
    arch/parisc/Kconfig | 4 ++++
    arch/powerpc/Kconfig | 4 ++++
    arch/sh/Kconfig | 3 +++
    arch/sparc/Kconfig | 4 ++++
    arch/xtensa/Kconfig | 3 +++
    lib/Kconfig | 3 +++
    lib/Makefile | 1 +
    lib/find_next_bit.c | 3 +++
    14 files changed, 48 insertions(+), 0 deletions(-)

    diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig
    index f6bcb03..e0764f0 100644
    --- a/arch/frv/Kconfig
    +++ b/arch/frv/Kconfig
    @@ -21,6 +21,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 65f897d8..552219f 100644
    --- a/arch/h8300/Kconfig
    +++ b/arch/h8300/Kconfig
    @@ -43,6 +43,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 5c291d6..b30cea3 100644
    --- a/arch/m32r/Kconfig
    +++ b/arch/m32r/Kconfig
    @@ -265,6 +265,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 704e7b9..5ba4f15 100644
    --- a/arch/m68knommu/Kconfig
    +++ b/arch/m68knommu/Kconfig
    @@ -40,6 +40,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 5f5018a..102d986 100644
    --- a/arch/microblaze/Kconfig
    +++ b/arch/microblaze/Kconfig
    @@ -34,6 +34,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 548e6cc..72e3ba3 100644
    --- a/arch/mips/Kconfig
    +++ b/arch/mips/Kconfig
    @@ -773,6 +773,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 0888675..3aeaf16 100644
    --- a/arch/parisc/Kconfig
    +++ b/arch/parisc/Kconfig
    @@ -48,6 +48,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 959f38c..b88d787 100644
    --- a/arch/powerpc/Kconfig
    +++ b/arch/powerpc/Kconfig
    @@ -107,6 +107,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 fff2522..6ee6d4b 100644
    --- a/arch/sh/Kconfig
    +++ b/arch/sh/Kconfig
    @@ -73,6 +73,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 45d9c87..085a9b7 100644
    --- a/arch/sparc/Kconfig
    +++ b/arch/sparc/Kconfig
    @@ -194,6 +194,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 d373d15..7283919 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 0ee67e0..99b8008 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 cbb774f..865dc16 100644
    --- a/lib/Makefile
    +++ b/lib/Makefile
    @@ -38,6 +38,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 7667c3d..b0a8767 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 @@ found_middle_swap:
    return result + __ffs(ext2_swab(tmp));
    }
    EXPORT_SYMBOL(find_next_bit_le);
    +
    +#endif /* CONFIG_GENERIC_FIND_BIT_LE */
    #endif /* __BIG_ENDIAN */
    --
    1.7.3.4


    \
     
     \ /
      Last update: 2011-01-22 14:21    [W:0.030 / U:122.784 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site