|
@@ -75,8 +75,7 @@ int ipv6_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt
|
|
|
if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL ||
|
|
if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL ||
|
|
|
!idev || unlikely(idev->cnf.disable_ipv6)) {
|
|
!idev || unlikely(idev->cnf.disable_ipv6)) {
|
|
|
IP6_INC_STATS_BH(net, idev, IPSTATS_MIB_INDISCARDS);
|
|
IP6_INC_STATS_BH(net, idev, IPSTATS_MIB_INDISCARDS);
|
|
|
- rcu_read_unlock();
|
|
|
|
|
- goto out;
|
|
|
|
|
|
|
+ goto drop;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
memset(IP6CB(skb), 0, sizeof(struct inet6_skb_parm));
|
|
memset(IP6CB(skb), 0, sizeof(struct inet6_skb_parm));
|
|
@@ -147,7 +146,6 @@ int ipv6_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt
|
|
|
drop:
|
|
drop:
|
|
|
rcu_read_unlock();
|
|
rcu_read_unlock();
|
|
|
kfree_skb(skb);
|
|
kfree_skb(skb);
|
|
|
-out:
|
|
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|