diff options
Diffstat (limited to 'include/net/inet_sock.h')
| -rw-r--r-- | include/net/inet_sock.h | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h index 1f4a9a60d4cc..ce6da97bc848 100644 --- a/include/net/inet_sock.h +++ b/include/net/inet_sock.h | |||
| @@ -27,7 +27,6 @@ | |||
| 27 | /** struct ip_options - IP Options | 27 | /** struct ip_options - IP Options |
| 28 | * | 28 | * |
| 29 | * @faddr - Saved first hop address | 29 | * @faddr - Saved first hop address |
| 30 | * @is_setbyuser - Set by setsockopt? | ||
| 31 | * @is_data - Options in __data, rather than skb | 30 | * @is_data - Options in __data, rather than skb |
| 32 | * @is_strictroute - Strict source route | 31 | * @is_strictroute - Strict source route |
| 33 | * @srr_is_hit - Packet destination addr was our one | 32 | * @srr_is_hit - Packet destination addr was our one |
| @@ -37,13 +36,12 @@ | |||
| 37 | * @ts_needaddr - Need to record addr of outgoing dev | 36 | * @ts_needaddr - Need to record addr of outgoing dev |
| 38 | */ | 37 | */ |
| 39 | struct ip_options { | 38 | struct ip_options { |
| 40 | __u32 faddr; | 39 | __be32 faddr; |
| 41 | unsigned char optlen; | 40 | unsigned char optlen; |
| 42 | unsigned char srr; | 41 | unsigned char srr; |
| 43 | unsigned char rr; | 42 | unsigned char rr; |
| 44 | unsigned char ts; | 43 | unsigned char ts; |
| 45 | unsigned char is_setbyuser:1, | 44 | unsigned char is_data:1, |
| 46 | is_data:1, | ||
| 47 | is_strictroute:1, | 45 | is_strictroute:1, |
| 48 | srr_is_hit:1, | 46 | srr_is_hit:1, |
| 49 | is_changed:1, | 47 | is_changed:1, |
| @@ -51,7 +49,7 @@ struct ip_options { | |||
| 51 | ts_needtime:1, | 49 | ts_needtime:1, |
| 52 | ts_needaddr:1; | 50 | ts_needaddr:1; |
| 53 | unsigned char router_alert; | 51 | unsigned char router_alert; |
| 54 | unsigned char __pad1; | 52 | unsigned char cipso; |
| 55 | unsigned char __pad2; | 53 | unsigned char __pad2; |
| 56 | unsigned char __data[0]; | 54 | unsigned char __data[0]; |
| 57 | }; | 55 | }; |
| @@ -64,9 +62,9 @@ struct inet_request_sock { | |||
| 64 | u16 inet6_rsk_offset; | 62 | u16 inet6_rsk_offset; |
| 65 | /* 2 bytes hole, try to pack */ | 63 | /* 2 bytes hole, try to pack */ |
| 66 | #endif | 64 | #endif |
| 67 | u32 loc_addr; | 65 | __be32 loc_addr; |
| 68 | u32 rmt_addr; | 66 | __be32 rmt_addr; |
| 69 | u16 rmt_port; | 67 | __be16 rmt_port; |
| 70 | u16 snd_wscale : 4, | 68 | u16 snd_wscale : 4, |
| 71 | rcv_wscale : 4, | 69 | rcv_wscale : 4, |
| 72 | tstamp_ok : 1, | 70 | tstamp_ok : 1, |
| @@ -112,15 +110,15 @@ struct inet_sock { | |||
| 112 | struct ipv6_pinfo *pinet6; | 110 | struct ipv6_pinfo *pinet6; |
| 113 | #endif | 111 | #endif |
| 114 | /* Socket demultiplex comparisons on incoming packets. */ | 112 | /* Socket demultiplex comparisons on incoming packets. */ |
| 115 | __u32 daddr; | 113 | __be32 daddr; |
| 116 | __u32 rcv_saddr; | 114 | __be32 rcv_saddr; |
| 117 | __u16 dport; | 115 | __be16 dport; |
| 118 | __u16 num; | 116 | __u16 num; |
| 119 | __u32 saddr; | 117 | __be32 saddr; |
| 120 | __s16 uc_ttl; | 118 | __s16 uc_ttl; |
| 121 | __u16 cmsg_flags; | 119 | __u16 cmsg_flags; |
| 122 | struct ip_options *opt; | 120 | struct ip_options *opt; |
| 123 | __u16 sport; | 121 | __be16 sport; |
| 124 | __u16 id; | 122 | __u16 id; |
| 125 | __u8 tos; | 123 | __u8 tos; |
| 126 | __u8 mc_ttl; | 124 | __u8 mc_ttl; |
| @@ -131,7 +129,7 @@ struct inet_sock { | |||
| 131 | hdrincl:1, | 129 | hdrincl:1, |
| 132 | mc_loop:1; | 130 | mc_loop:1; |
| 133 | int mc_index; | 131 | int mc_index; |
| 134 | __u32 mc_addr; | 132 | __be32 mc_addr; |
| 135 | struct ip_mc_socklist *mc_list; | 133 | struct ip_mc_socklist *mc_list; |
| 136 | struct { | 134 | struct { |
| 137 | unsigned int flags; | 135 | unsigned int flags; |
| @@ -139,7 +137,7 @@ struct inet_sock { | |||
| 139 | struct ip_options *opt; | 137 | struct ip_options *opt; |
| 140 | struct rtable *rt; | 138 | struct rtable *rt; |
| 141 | int length; /* Total length of all frames */ | 139 | int length; /* Total length of all frames */ |
| 142 | u32 addr; | 140 | __be32 addr; |
| 143 | struct flowi fl; | 141 | struct flowi fl; |
| 144 | } cork; | 142 | } cork; |
| 145 | }; | 143 | }; |
| @@ -169,10 +167,10 @@ static inline void inet_sk_copy_descendant(struct sock *sk_to, | |||
| 169 | 167 | ||
| 170 | extern int inet_sk_rebuild_header(struct sock *sk); | 168 | extern int inet_sk_rebuild_header(struct sock *sk); |
| 171 | 169 | ||
| 172 | static inline unsigned int inet_ehashfn(const __u32 laddr, const __u16 lport, | 170 | static inline unsigned int inet_ehashfn(const __be32 laddr, const __u16 lport, |
| 173 | const __u32 faddr, const __u16 fport) | 171 | const __be32 faddr, const __be16 fport) |
| 174 | { | 172 | { |
| 175 | unsigned int h = (laddr ^ lport) ^ (faddr ^ fport); | 173 | unsigned int h = ((__force __u32)laddr ^ lport) ^ ((__force __u32)faddr ^ (__force __u32)fport); |
| 176 | h ^= h >> 16; | 174 | h ^= h >> 16; |
| 177 | h ^= h >> 8; | 175 | h ^= h >> 8; |
| 178 | return h; | 176 | return h; |
| @@ -181,10 +179,10 @@ static inline unsigned int inet_ehashfn(const __u32 laddr, const __u16 lport, | |||
| 181 | static inline int inet_sk_ehashfn(const struct sock *sk) | 179 | static inline int inet_sk_ehashfn(const struct sock *sk) |
| 182 | { | 180 | { |
| 183 | const struct inet_sock *inet = inet_sk(sk); | 181 | const struct inet_sock *inet = inet_sk(sk); |
| 184 | const __u32 laddr = inet->rcv_saddr; | 182 | const __be32 laddr = inet->rcv_saddr; |
| 185 | const __u16 lport = inet->num; | 183 | const __u16 lport = inet->num; |
| 186 | const __u32 faddr = inet->daddr; | 184 | const __be32 faddr = inet->daddr; |
| 187 | const __u16 fport = inet->dport; | 185 | const __be16 fport = inet->dport; |
| 188 | 186 | ||
| 189 | return inet_ehashfn(laddr, lport, faddr, fport); | 187 | return inet_ehashfn(laddr, lport, faddr, fport); |
| 190 | } | 188 | } |
