Re: [PATCH 1/4] LOG2: Implement a general integer log2 facility in the kernel [try #4]

Arnd Bergmann
2006-10-09T10:27:06Z

On Monday 09 October 2006 11:51, Kyle Moffett wrote:
>    #if defined(CONFIG_ARCH_HAS_64BIT_WORD)
>    typedef unsigned long  __u64;
>    typedef   signed long  __s64;
>    #elif defined(__GNUC__)
>    __extension__ typedef unsigned long long __u64;
>    __extension__ typedef   signed long long __s64;
>    #endif
>

Well, some architectures currently expext __u64/__s64 to be
long long even with 64 bits. Changing that will likely cause
a number of new compiler warnings about conversion between
these. Of course it would be nice to clean these up, since
it's already a pain to printk() a variable of type u64.

More importantly, your code has the problem that it relies
on a CONFIG_* symbol, which will break when user space includes
the file, because that does not have config.h.