projects
/
GitHub
/
LineageOS
/
G12
/
android_kernel_amlogic_linux-4.9.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e287656
)
ipv6: 64bit version of ipv6_addr_v4mapped().
author
YOSHIFUJI Hideaki / 吉藤英明
<yoshfuji@linux-ipv6.org>
Mon, 14 Jan 2013 07:10:14 +0000
(07:10 +0000)
committer
David S. Miller
<davem@davemloft.net>
Mon, 14 Jan 2013 18:17:00 +0000
(13:17 -0500)
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ipv6.h
patch
|
blob
|
blame
|
history
diff --git
a/include/net/ipv6.h
b/include/net/ipv6.h
index c5049b01933201fe4eb8a33aca675bc5504cb2ab..77cef33215714d11b2fe278945bb22dc5ffab195 100644
(file)
--- a/
include/net/ipv6.h
+++ b/
include/net/ipv6.h
@@
-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;
}
/*