diff options
Diffstat (limited to 'net/ipv6/raw.c')
-rw-r--r-- | net/ipv6/raw.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index 93d69836fded..ef0579d5bca6 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c | |||
@@ -165,7 +165,7 @@ static bool ipv6_raw_deliver(struct sk_buff *skb, int nexthdr) | |||
165 | saddr = &ipv6_hdr(skb)->saddr; | 165 | saddr = &ipv6_hdr(skb)->saddr; |
166 | daddr = saddr + 1; | 166 | daddr = saddr + 1; |
167 | 167 | ||
168 | hash = nexthdr & (MAX_INET_PROTOS - 1); | 168 | hash = nexthdr & (RAW_HTABLE_SIZE - 1); |
169 | 169 | ||
170 | read_lock(&raw_v6_hashinfo.lock); | 170 | read_lock(&raw_v6_hashinfo.lock); |
171 | sk = sk_head(&raw_v6_hashinfo.ht[hash]); | 171 | sk = sk_head(&raw_v6_hashinfo.ht[hash]); |
@@ -229,7 +229,7 @@ bool raw6_local_deliver(struct sk_buff *skb, int nexthdr) | |||
229 | { | 229 | { |
230 | struct sock *raw_sk; | 230 | struct sock *raw_sk; |
231 | 231 | ||
232 | raw_sk = sk_head(&raw_v6_hashinfo.ht[nexthdr & (MAX_INET_PROTOS - 1)]); | 232 | raw_sk = sk_head(&raw_v6_hashinfo.ht[nexthdr & (RAW_HTABLE_SIZE - 1)]); |
233 | if (raw_sk && !ipv6_raw_deliver(skb, nexthdr)) | 233 | if (raw_sk && !ipv6_raw_deliver(skb, nexthdr)) |
234 | raw_sk = NULL; | 234 | raw_sk = NULL; |
235 | 235 | ||
@@ -328,9 +328,12 @@ static void rawv6_err(struct sock *sk, struct sk_buff *skb, | |||
328 | return; | 328 | return; |
329 | 329 | ||
330 | harderr = icmpv6_err_convert(type, code, &err); | 330 | harderr = icmpv6_err_convert(type, code, &err); |
331 | if (type == ICMPV6_PKT_TOOBIG) | 331 | if (type == ICMPV6_PKT_TOOBIG) { |
332 | ip6_sk_update_pmtu(skb, sk, info); | ||
332 | harderr = (np->pmtudisc == IPV6_PMTUDISC_DO); | 333 | harderr = (np->pmtudisc == IPV6_PMTUDISC_DO); |
333 | 334 | } | |
335 | if (type == NDISC_REDIRECT) | ||
336 | ip6_sk_redirect(skb, sk); | ||
334 | if (np->recverr) { | 337 | if (np->recverr) { |
335 | u8 *payload = skb->data; | 338 | u8 *payload = skb->data; |
336 | if (!inet->hdrincl) | 339 | if (!inet->hdrincl) |