diff options
Diffstat (limited to 'net/ipv6/icmp.c')
-rw-r--r-- | net/ipv6/icmp.c | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c index f1240688dc58..93c96cfd5ee1 100644 --- a/net/ipv6/icmp.c +++ b/net/ipv6/icmp.c | |||
@@ -555,9 +555,7 @@ out: | |||
555 | 555 | ||
556 | static void icmpv6_notify(struct sk_buff *skb, int type, int code, __be32 info) | 556 | static void icmpv6_notify(struct sk_buff *skb, int type, int code, __be32 info) |
557 | { | 557 | { |
558 | struct in6_addr *saddr, *daddr; | ||
559 | struct inet6_protocol *ipprot; | 558 | struct inet6_protocol *ipprot; |
560 | struct sock *sk; | ||
561 | int inner_offset; | 559 | int inner_offset; |
562 | int hash; | 560 | int hash; |
563 | u8 nexthdr; | 561 | u8 nexthdr; |
@@ -579,9 +577,6 @@ static void icmpv6_notify(struct sk_buff *skb, int type, int code, __be32 info) | |||
579 | if (!pskb_may_pull(skb, inner_offset+8)) | 577 | if (!pskb_may_pull(skb, inner_offset+8)) |
580 | return; | 578 | return; |
581 | 579 | ||
582 | saddr = &ipv6_hdr(skb)->saddr; | ||
583 | daddr = &ipv6_hdr(skb)->daddr; | ||
584 | |||
585 | /* BUGGG_FUTURE: we should try to parse exthdrs in this packet. | 580 | /* BUGGG_FUTURE: we should try to parse exthdrs in this packet. |
586 | Without this we will not able f.e. to make source routed | 581 | Without this we will not able f.e. to make source routed |
587 | pmtu discovery. | 582 | pmtu discovery. |
@@ -597,15 +592,7 @@ static void icmpv6_notify(struct sk_buff *skb, int type, int code, __be32 info) | |||
597 | ipprot->err_handler(skb, NULL, type, code, inner_offset, info); | 592 | ipprot->err_handler(skb, NULL, type, code, inner_offset, info); |
598 | rcu_read_unlock(); | 593 | rcu_read_unlock(); |
599 | 594 | ||
600 | read_lock(&raw_v6_lock); | 595 | raw6_icmp_error(skb, nexthdr, type, code, inner_offset, info); |
601 | if ((sk = sk_head(&raw_v6_htable[hash])) != NULL) { | ||
602 | while ((sk = __raw_v6_lookup(sk, nexthdr, saddr, daddr, | ||
603 | IP6CB(skb)->iif))) { | ||
604 | rawv6_err(sk, skb, NULL, type, code, inner_offset, info); | ||
605 | sk = sk_next(sk); | ||
606 | } | ||
607 | } | ||
608 | read_unlock(&raw_v6_lock); | ||
609 | } | 596 | } |
610 | 597 | ||
611 | /* | 598 | /* |