.. | .. |
---|
660 | 660 | /* more secured version of ipv6_addr_hash() */ |
---|
661 | 661 | static inline u32 __ipv6_addr_jhash(const struct in6_addr *a, const u32 initval) |
---|
662 | 662 | { |
---|
663 | | - u32 v = (__force u32)a->s6_addr32[0] ^ (__force u32)a->s6_addr32[1]; |
---|
664 | | - |
---|
665 | | - return jhash_3words(v, |
---|
666 | | - (__force u32)a->s6_addr32[2], |
---|
667 | | - (__force u32)a->s6_addr32[3], |
---|
668 | | - initval); |
---|
| 663 | + return jhash2((__force const u32 *)a->s6_addr32, |
---|
| 664 | + ARRAY_SIZE(a->s6_addr32), initval); |
---|
669 | 665 | } |
---|
670 | 666 | |
---|
671 | 667 | static inline bool ipv6_addr_loopback(const struct in6_addr *a) |
---|
.. | .. |
---|
1106 | 1102 | void ipv6_local_error(struct sock *sk, int err, struct flowi6 *fl6, u32 info); |
---|
1107 | 1103 | void ipv6_local_rxpmtu(struct sock *sk, struct flowi6 *fl6, u32 mtu); |
---|
1108 | 1104 | |
---|
| 1105 | +void inet6_cleanup_sock(struct sock *sk); |
---|
| 1106 | +void inet6_sock_destruct(struct sock *sk); |
---|
1109 | 1107 | int inet6_release(struct socket *sock); |
---|
1110 | 1108 | int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len); |
---|
1111 | 1109 | int inet6_getname(struct socket *sock, struct sockaddr *uaddr, |
---|
.. | .. |
---|
1248 | 1246 | return 0; |
---|
1249 | 1247 | } |
---|
1250 | 1248 | |
---|
1251 | | -static inline int ip6_sock_set_addr_preferences(struct sock *sk, bool val) |
---|
| 1249 | +static inline int ip6_sock_set_addr_preferences(struct sock *sk, int val) |
---|
1252 | 1250 | { |
---|
1253 | 1251 | int ret; |
---|
1254 | 1252 | |
---|