| .. | .. |
|---|
| 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 | |
|---|