summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorYury Norov <ynorov@nvidia.com>2026-03-23 12:17:12 -0400
committerYury Norov <ynorov@nvidia.com>2026-03-23 13:33:51 -0400
commitbe56db15fcce8bb8bd85f236382276d52ce73d08 (patch)
tree88d0d51b496d8d0aa39364ce39080f68129f7d4f /include
parent4e64c91b813f666dffc3962a815a8a50b7d6f468 (diff)
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 <andriy.shevchenko@intel.com> Signed-off-by: Yury Norov <ynorov@nvidia.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/count_zeros.h6
1 files changed, 2 insertions, 4 deletions
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 <asm/bitops.h>
-#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_ */