diff --git a/lnet/include/libcfs/user-bitops.h b/lnet/include/libcfs/user-bitops.h index 3147f72cf7e8018b62d0f2c616e08f6a8a79d1d9..be248abfd02bb8b6a0ff63e0b7cad0bd646ca87a 100644 --- a/lnet/include/libcfs/user-bitops.h +++ b/lnet/include/libcfs/user-bitops.h @@ -82,8 +82,12 @@ static __inline__ unsigned long __fls(long data) return 0; #if BITS_PER_LONG == 64 - if ((data & 0xFFFFFFFF) == 0) + pos += 32; + + if ((data & 0xFFFFFFFF) == 0) { data <<= 32; + pos -= 32; + } #endif if (!(data & 0xFFFF0000u)) {