ipv6: 64bit version of ipv6_addr_v4mapped().
Subsystems (3)
PATCH 3/6 ipv6: 64bit version of ipv6_addr_v4mapped().
Signed-off-by YOSHIFUJI Hideaki <[email protected]>
--- include/net/ipv6.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
include/net/ipv6.h +7 -2
@@ -487,8 +487,13 @@ static inline bool ipv6_addr_loopback(const struct in6_addr *a)static inline bool ipv6_addr_v4mapped (const struct in6_addr *a) { -return (a->s6_addr32[0 ] | a->s6_addr32[1 ] | - (a->s6_addr32[2 ] ^htonl (0x0000ffff ))) ==0 ; + return ( +#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS ) &&BITS_PER_LONG ==64 + *(__be64 *)a | +#else + (a->s6_addr32[0 ] | a->s6_addr32[1 ]) | +#endif + (a->s6_addr32[2] ^ htonl(0x0000ffff))) == 0UL; }/*
Signature · 1 line
1.7.9.5