Skip to content

Commit

Permalink
ipv6: 64bit version of ipv6_addr_v4mapped().
Browse files Browse the repository at this point in the history
Signed-off-by: YOSHIFUJI Hideaki <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
yoshfuji authored and davem330 committed Jan 14, 2013
1 parent e287656 commit a04d40b
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions include/net/ipv6.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

/*
Expand Down

0 comments on commit a04d40b

Please sign in to comment.