On Tue, Oct 07, 2025 at 01:11:46PM -0300, Jason Gunthorpe wrote:
+/*
- Return the highest value such that:
- ffz_t(u32, U32_MAX) == UNDEFINED
- ffz_t(u32, 0) == 0
- ffz_t(u32, 1) == 1
- log_mod(a, ret) == log_to_max_int(ret)
- aka find first zero bit
- */
+static inline unsigned int ffz32(u32 a) +{
- return ffz(a);
+} +static inline unsigned int ffz64(u64 a) +{
- if (sizeof(u64) == sizeof(unsigned long))
return ffz32(a);
This should be ffz(a), it breaks everything like this. I must have run the kunits out of sequence to have missed this.
I updated the github
Jason