Hi, I'm looking to use roundup_pow_of_two() (actually, order_base_2()) from <linux/log2.h>, but it seems that it only supports 64-bit integers if your toolchain uses a 64-bit 'unsigned long' type. This is strange, considering that ilog2() is explicitly designed for 32-bit or 64-bit compatibility.
I also note that there is at least one location in which this limitation currently might be problematic: in pnv_pci_ioda2_set_bypass() (arch/powerpc/platforms/powernv/pci-ioda.c). It looks like this could be a problem if using large amounts of DRAM on a 32-bit PPC build, with 64-bit physical addresses. (There may be other cases like this one, but I haven't closely studied all callers of roundup_pow_of_two().) I'm thinking of cooking a patch to improve roundup_pow_of_two() (and thus order_base_2()), but I'd like to solicit comments on the basic problem first. Regards, Brian P.S. And of course, rounddown_pow_of_two() has the same issue. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev