Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e287656b authored by YOSHIFUJI Hideaki / 吉藤英明's avatar YOSHIFUJI Hideaki / 吉藤英明 Committed by David S. Miller
Browse files

ipv6: 64bit version of ipv6_addr_loopback().

parent 9f2e7334
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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)