> diff -ruHpN -X dontdiff linux-2.6.22-rc5-orig/include/net/ip6_rdnss.h
> linux-2.6.22-rc5/include/net/ip6_rdnss.h
> --- linux-2.6.22-rc5-orig/include/net/ip6_rdnss.h1969-12-31
> 19:00:00.000000000 -0500
> +++ linux-2.6.22-rc5/include/net/ip6_rdnss.h2007-06-21
> 18:16:33.000000000 -0400 @@ -0,0 +1,58 @@
> +#ifndef _NET_IP6_RDNSS_H
> +#define _NET_IP6_RDNSS_H
> +
> +#ifdef __KERNEL__
> +
> +#include <linux/in6.h>
> +
> +struct nd_opt_rdnss {
> +__u8type;
> +__u8length;
> +#if defined(__BIG_ENDIAN_BITFIELD)
> +__u8priority:4,
> +open:1,
> +reserved1:3;
> +#elif defined(__LITTLE_ENDIAN_BITFIELD)
> +__u8reserved1:3,
> +open:1,
> +priority:4;
> +#else
> +# error not little or big endian
> +#endif

That is not endianess-safe. Don't use foo:x at all
for stuff where a specific endianess is needed. The
compiler doesn't make any guarantee about it.

This was copied directly from include/net/ip6_route.h.  I believe that
it does in fact work, and I (for one) find this much more readable
than the alternative.  If it is in fact broken, then
include/net/ip6_route.h (and the 35 other files which use this #ifdef
in this manner) should be fixed.
--scott

--
                        ( http://cscott.net/ )
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to