include/linux/count_zeros.h | 4 +--- lib/crypto/mpi/longlong.h | 8 ++++---- 2 files changed, 5 insertions(+), 7 deletions(-)
count_leading_zeros() is based on fls(), which is defined for x == 0,
contrary to ffs() family. The comment in crypto/mpi erroneously states
that the function may return undef in such case.
Fix the comment together with the outdated function signature, and now
that COUNT_LEADING_ZEROS_0 is not referenced in the codebase, get rid of
it too.
Signed-off-by: Yury Norov <ynorov@nvidia.com>
---
v1: https://lore.kernel.org/all/20260310211021.95362-1-ynorov@nvidia.com/
v2: cleanup trailing whitespaces, tweak comments (Andy)
include/linux/count_zeros.h | 4 +---
lib/crypto/mpi/longlong.h | 8 ++++----
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/include/linux/count_zeros.h b/include/linux/count_zeros.h
index 5b8ff5ac660d..4e5680327ece 100644
--- a/include/linux/count_zeros.h
+++ b/include/linux/count_zeros.h
@@ -18,7 +18,7 @@
*
* If the MSB of @x is set, the result is 0.
* If only the LSB of @x is set, then the result is BITS_PER_LONG-1.
- * If @x is 0 then the result is COUNT_LEADING_ZEROS_0.
+ * If @x is 0 then the result is BITS_PER_LONG.
*/
static inline int count_leading_zeros(unsigned long x)
{
@@ -28,8 +28,6 @@ static inline int count_leading_zeros(unsigned long x)
return BITS_PER_LONG - fls64(x);
}
-#define COUNT_LEADING_ZEROS_0 BITS_PER_LONG
-
/**
* count_trailing_zeros - Count the number of zeros from the LSB forwards
* @x: The value
diff --git a/lib/crypto/mpi/longlong.h b/lib/crypto/mpi/longlong.h
index b6fa1d08fb55..a5ef41c8f85d 100644
--- a/lib/crypto/mpi/longlong.h
+++ b/lib/crypto/mpi/longlong.h
@@ -66,12 +66,12 @@
* denominator). Like udiv_qrnnd but the numbers are signed. The quotient
* is rounded towards 0.
*
- * 5) count_leading_zeros(count, x) counts the number of zero-bits from the
+ * 5) count_leading_zeros(x) counts the number of zero-bits from the
* msb to the first non-zero bit in the UWtype X. This is the number of
- * steps X needs to be shifted left to set the msb. Undefined for X == 0,
- * unless the symbol COUNT_LEADING_ZEROS_0 is defined to some value.
+ * steps X needs to be shifted left to set the msb.
+ * count_leading_zeros(0) == BITS_PER_LONG
*
- * 6) count_trailing_zeros(count, x) like count_leading_zeros, but counts
+ * 6) count_trailing_zeros() like count_leading_zeros(), but counts
* from the least significant end.
*
* 7) add_ssaaaa(high_sum, low_sum, high_addend_1, low_addend_1,
--
2.43.0
On Thu, Mar 12, 2026 at 12:11:32PM -0400, Yury Norov wrote: > count_leading_zeros() is based on fls(), which is defined for x == 0, > contrary to ffs() family. The comment in crypto/mpi erroneously states > that the function may return undef in such case. > > Fix the comment together with the outdated function signature, and now > that COUNT_LEADING_ZEROS_0 is not referenced in the codebase, get rid of > it too. FWIW, Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> -- With Best Regards, Andy Shevchenko
On Thu, Mar 12, 2026 at 06:17:48PM +0200, Andy Shevchenko wrote: > On Thu, Mar 12, 2026 at 12:11:32PM -0400, Yury Norov wrote: > > count_leading_zeros() is based on fls(), which is defined for x == 0, > > contrary to ffs() family. The comment in crypto/mpi erroneously states > > that the function may return undef in such case. > > > > Fix the comment together with the outdated function signature, and now > > that COUNT_LEADING_ZEROS_0 is not referenced in the codebase, get rid of > > it too. > > FWIW, > Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Thanks, it worth! Applied for testing in -next. Thanks, Yury
On Thu, Mar 12, 2026 at 12:34:39PM -0400, Yury Norov wrote: > On Thu, Mar 12, 2026 at 06:17:48PM +0200, Andy Shevchenko wrote: > > On Thu, Mar 12, 2026 at 12:11:32PM -0400, Yury Norov wrote: > > > count_leading_zeros() is based on fls(), which is defined for x == 0, > > > contrary to ffs() family. The comment in crypto/mpi erroneously states > > > that the function may return undef in such case. > > > > > > Fix the comment together with the outdated function signature, and now > > > that COUNT_LEADING_ZEROS_0 is not referenced in the codebase, get rid of > > > it too. > > > > FWIW, > > Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > Thanks, it worth! > > Applied for testing in -next. > > Thanks, > Yury Acked-by: Eric Biggers <ebiggers@kernel.org> - Eric
© 2016 - 2026 Red Hat, Inc.