lkml.org 
[lkml]   [2022]   [Jul]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 03/10] lib/bitmap: change type of bitmap_weight to unsigned long
    Date
    bitmap_weight() doesn't return negative values, so change it's type
    to unsigned long. It may help compiler to generate better code and
    catch bugs.

    Signed-off-by: Yury Norov <yury.norov@gmail.com>
    ---
    include/linux/bitmap.h | 5 +++--
    lib/bitmap.c | 5 ++---
    tools/include/linux/bitmap.h | 4 ++--
    tools/lib/bitmap.c | 4 ++--
    4 files changed, 9 insertions(+), 9 deletions(-)

    diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h
    index 85aace699b2b..a92149f415d2 100644
    --- a/include/linux/bitmap.h
    +++ b/include/linux/bitmap.h
    @@ -163,7 +163,7 @@ bool __bitmap_intersects(const unsigned long *bitmap1,
    const unsigned long *bitmap2, unsigned int nbits);
    bool __bitmap_subset(const unsigned long *bitmap1,
    const unsigned long *bitmap2, unsigned int nbits);
    -int __bitmap_weight(const unsigned long *bitmap, unsigned int nbits);
    +unsigned long __bitmap_weight(const unsigned long *bitmap, unsigned int nbits);
    void __bitmap_set(unsigned long *map, unsigned int start, int len);
    void __bitmap_clear(unsigned long *map, unsigned int start, int len);

    @@ -419,7 +419,8 @@ static inline bool bitmap_full(const unsigned long *src, unsigned int nbits)
    return find_first_zero_bit(src, nbits) == nbits;
    }

    -static __always_inline int bitmap_weight(const unsigned long *src, unsigned int nbits)
    +static __always_inline
    +unsigned long bitmap_weight(const unsigned long *src, unsigned int nbits)
    {
    if (small_const_nbits(nbits))
    return hweight_long(*src & BITMAP_LAST_WORD_MASK(nbits));
    diff --git a/lib/bitmap.c b/lib/bitmap.c
    index 098fd9db2363..b580b381eca1 100644
    --- a/lib/bitmap.c
    +++ b/lib/bitmap.c
    @@ -333,10 +333,9 @@ bool __bitmap_subset(const unsigned long *bitmap1,
    }
    EXPORT_SYMBOL(__bitmap_subset);

    -int __bitmap_weight(const unsigned long *bitmap, unsigned int bits)
    +unsigned long __bitmap_weight(const unsigned long *bitmap, unsigned int bits)
    {
    - unsigned int k, lim = bits/BITS_PER_LONG;
    - int w = 0;
    + unsigned long k, w = 0, lim = bits/BITS_PER_LONG;

    for (k = 0; k < lim; k++)
    w += hweight_long(bitmap[k]);
    diff --git a/tools/include/linux/bitmap.h b/tools/include/linux/bitmap.h
    index 2ae7ab8ed7d1..ae1852e39142 100644
    --- a/tools/include/linux/bitmap.h
    +++ b/tools/include/linux/bitmap.h
    @@ -11,7 +11,7 @@
    #define DECLARE_BITMAP(name,bits) \
    unsigned long name[BITS_TO_LONGS(bits)]

    -int __bitmap_weight(const unsigned long *bitmap, int bits);
    +unsigned long __bitmap_weight(const unsigned long *bitmap, unsigned int bits);
    void __bitmap_or(unsigned long *dst, const unsigned long *bitmap1,
    const unsigned long *bitmap2, int bits);
    bool __bitmap_and(unsigned long *dst, const unsigned long *bitmap1,
    @@ -61,7 +61,7 @@ static inline bool bitmap_full(const unsigned long *src, unsigned int nbits)
    return find_first_zero_bit(src, nbits) == nbits;
    }

    -static inline int bitmap_weight(const unsigned long *src, unsigned int nbits)
    +static inline unsigned long bitmap_weight(const unsigned long *src, unsigned int nbits)
    {
    if (small_const_nbits(nbits))
    return hweight_long(*src & BITMAP_LAST_WORD_MASK(nbits));
    diff --git a/tools/lib/bitmap.c b/tools/lib/bitmap.c
    index 2e351d63fdba..e1fafc131a49 100644
    --- a/tools/lib/bitmap.c
    +++ b/tools/lib/bitmap.c
    @@ -5,9 +5,9 @@
    */
    #include <linux/bitmap.h>

    -int __bitmap_weight(const unsigned long *bitmap, int bits)
    +unsigned long __bitmap_weight(const unsigned long *bitmap, unsigned int bits)
    {
    - int k, w = 0, lim = bits/BITS_PER_LONG;
    + unsigned long k, w = 0, lim = bits/BITS_PER_LONG;

    for (k = 0; k < lim; k++)
    w += hweight_long(bitmap[k]);
    --
    2.34.1
    \
     
     \ /
      Last update: 2022-07-06 19:44    [W:2.472 / U:0.352 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site