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