diff options
Diffstat (limited to 'net/ipv6/ip6_output.c')
| -rw-r--r-- | net/ipv6/ip6_output.c | 3 | 
1 files changed, 2 insertions, 1 deletions
| diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 12f985f43bcc..2f044a49afa8 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -464,13 +464,14 @@ static bool ip6_pkt_too_big(const struct sk_buff *skb, unsigned int mtu)  int ip6_forward(struct sk_buff *skb)  { -	struct inet6_dev *idev = __in6_dev_get_safely(skb->dev);  	struct dst_entry *dst = skb_dst(skb);  	struct ipv6hdr *hdr = ipv6_hdr(skb);  	struct inet6_skb_parm *opt = IP6CB(skb);  	struct net *net = dev_net(dst->dev); +	struct inet6_dev *idev;  	u32 mtu; +	idev = __in6_dev_get_safely(dev_get_by_index_rcu(net, IP6CB(skb)->iif));  	if (net->ipv6.devconf_all->forwarding == 0)  		goto error; |