mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* x86: fls64() exported to user space but not fls()?
@ 2011-12-15 22:42 H. Peter Anvin
  2011-12-15 23:25 ` [tip:x86/asm] x86, bitops: Move fls64.h inside __KERNEL__ tip-bot for H. Peter Anvin
  0 siblings, 1 reply; 2+ messages in thread
From: H. Peter Anvin @ 2011-12-15 22:42 UTC (permalink / raw)
  To: David Howells, Stephen Hemminger, Alexander van Heukelum,
	Ingo Molnar, Thomas Gleixner
  Cc: Linux Kernel Mailing List

I'm trying to grok why fls64() seems to be exported to user space in
<asm/bitops.h> on x86 by unconditional inclusion of
<asm-generic/bitops/fls64.h>:

...
#endif /* __KERNEL__ */

#include <asm-generic/bitops/fls64.h>

#ifdef __KERNEL__
...


 whereas fls() isn't (although __fls() is!)

This is even more bizarre since <asm-generic/bitops/fls64.h> contains:

...
#if BITS_PER_LONG == 32
static __always_inline int fls64(__u64 x)
{
        __u32 h = x >> 32;
        if (h)
                return fls(h) + 32;
        return fls(x);
}
#elif BITS_PER_LONG == 64
static __always_inline int fls64(__u64 x)
{
        if (x == 0)
                return 0;
        return __fls(x) + 1;
}
#else
#error BITS_PER_LONG not 32 or 64
#endif
...

Both BITS_PER_LONG and fls() are non-user-visible symbols, so this code
should fail on user space.  Finally, <asm-generic/bitops/*> are
non-exported headers; they are not installed by make headers_install.

Is the #endif..#ifdef in <asm/bitops.h> a bug, plain and simple?

	-hpa

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-12-15 23:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-15 22:42 x86: fls64() exported to user space but not fls()? H. Peter Anvin
2011-12-15 23:25 ` [tip:x86/asm] x86, bitops: Move fls64.h inside __KERNEL__ tip-bot for H. Peter Anvin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome