net: ipv6: add skb drop reasons to ip6_pkt_drop()
Replace kfree_skb() used in ip6_pkt_drop() with kfree_skb_reason(). No new reason is added. Signed-off-by: Menglong Dong <imagedong@tencent.com> Reviewed-by: Jiang Biao <benbjiang@tencent.com> Reviewed-by: Hao Peng <flyingpeng@tencent.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
c4eb664191
Коммит
3ae42cc809
|
@ -4482,6 +4482,7 @@ static int ip6_pkt_drop(struct sk_buff *skb, u8 code, int ipstats_mib_noroutes)
|
|||
struct dst_entry *dst = skb_dst(skb);
|
||||
struct net *net = dev_net(dst->dev);
|
||||
struct inet6_dev *idev;
|
||||
SKB_DR(reason);
|
||||
int type;
|
||||
|
||||
if (netif_is_l3_master(skb->dev) ||
|
||||
|
@ -4494,11 +4495,14 @@ static int ip6_pkt_drop(struct sk_buff *skb, u8 code, int ipstats_mib_noroutes)
|
|||
case IPSTATS_MIB_INNOROUTES:
|
||||
type = ipv6_addr_type(&ipv6_hdr(skb)->daddr);
|
||||
if (type == IPV6_ADDR_ANY) {
|
||||
SKB_DR_SET(reason, IP_INADDRERRORS);
|
||||
IP6_INC_STATS(net, idev, IPSTATS_MIB_INADDRERRORS);
|
||||
break;
|
||||
}
|
||||
SKB_DR_SET(reason, IP_INNOROUTES);
|
||||
fallthrough;
|
||||
case IPSTATS_MIB_OUTNOROUTES:
|
||||
SKB_DR_OR(reason, IP_OUTNOROUTES);
|
||||
IP6_INC_STATS(net, idev, ipstats_mib_noroutes);
|
||||
break;
|
||||
}
|
||||
|
@ -4508,7 +4512,7 @@ static int ip6_pkt_drop(struct sk_buff *skb, u8 code, int ipstats_mib_noroutes)
|
|||
skb_dst_drop(skb);
|
||||
|
||||
icmpv6_send(skb, ICMPV6_DEST_UNREACH, code, 0);
|
||||
kfree_skb(skb);
|
||||
kfree_skb_reason(skb, reason);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче