From be56db15fcce8bb8bd85f236382276d52ce73d08 Mon Sep 17 00:00:00 2001 From: Yury Norov Date: Mon, 23 Mar 2026 12:17:12 -0400 Subject: lib: count_zeros: unify count_{leading,trailing}_zeros() The 'leading' helper returns BITS_PER_LONG if x == 0, while 'trailing' one returns COUNT_TRAILING_ZEROS_0, which turns to be -1. None of the current users explicitly check the returned value for COUNT_TRAILING_ZEROS_0, except the loongarch, which tests implicitly for the '>= 0'. So, align count_trailing_zeros() with the count_leading_zeros(), and simplify the loongarch handling. Reviewed-by: Andy Shevchenko Signed-off-by: Yury Norov --- include/linux/count_zeros.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/linux/count_zeros.h b/include/linux/count_zeros.h index 5034a30b5c7c..b72ba3faa036 100644 --- a/include/linux/count_zeros.h +++ b/include/linux/count_zeros.h @@ -10,8 +10,6 @@ #include -#define COUNT_TRAILING_ZEROS_0 (-1) - /** * count_leading_zeros - Count the number of zeros from the MSB back * @x: The value @@ -38,11 +36,11 @@ static inline int count_leading_zeros(unsigned long x) * * If the LSB of @x is set, the result is 0. * If only the MSB of @x is set, then the result is BITS_PER_LONG-1. - * If @x is 0 then the result is COUNT_TRAILING_ZEROS_0. + * If @x is 0 then the result is BITS_PER_LONG. */ static inline int count_trailing_zeros(unsigned long x) { - return (x != 0) ? __ffs(x) : COUNT_TRAILING_ZEROS_0; + return x ? __ffs(x) : BITS_PER_LONG; } #endif /* _LINUX_BITOPS_COUNT_ZEROS_H_ */ -- cgit v1.2.3