__bitwise versus __bitwise__ [Was: [PATCH] mac80211: check endianness/types in sparse runs]

Sam Ravnborg
2008-02-21T22:32:40Z

Al - can I ask you to explain the difference between __bitwise
and __bitwise__ as used by the kernel.

Se below for a bit of background info.

Thanks,
Sam

On Thu, Feb 21, 2008 at 12:01:31PM -0800, Harvey Harrison wrote:
> On Thu, 2008-02-21 at 13:42 +0100, Johannes Berg wrote:
> > >> [patch doing CHECKFLAGS += -D__CHECK_ENDIAN__ in the
> > >> net/mac80211/Makefile]
> >
> > > I would prefer it to be kernel wide enabled.
> > > Tried a defconfig build.
> >
> > Hm. I tend to think there was a reason for this, since this is actually
> > explicitly disabled by include/linux/types.h:
> >
> > #ifdef __CHECKER__
> > #define __bitwise__ __attribute__((bitwise))
> > #else
> > #define __bitwise__
> > #endif
> >
> > #ifdef __CHECK_ENDIAN__
> > #define __bitwise __bitwise__
> > #else
> > #define __bitwise
> > #endif
> >
>
> This seems somewhat suspect.
>
> > I recently ran sparse on my config and was surprised by the number of
> > warnings. Then again, something in mmzone.h or so generated billions of
> > them...
>
> Potentially expensive pointer subtraction 640:....
>
> Patch in -mm.
>
> >
> > In any case, I would love to have __CHECK_ENDIAN__ enabled by default at
> > least on the wireless code (just caught another bug with it...)
> >
>
> I'd love to have it too, but there are so many trivial warnings that
> clutter up valid warnings that it is prohibitive. I'm working on
> reducing the noise level a bit for 2.6.26, we'll see about turning
> it on then.
>
> Harvey
>