From the Linux kernel
high_width = ffs(size_or_mask & 0xffffffffUL) - 1;
high_width becomes the bit position of the least significant bit set in size_or_mask. Note, the least significant bit for ffs is 1, not 0, because 0 is returned if no bit is set. The -1 is used to convert the result of ffs() to the standard bit numbering.