diff options
Diffstat (limited to 'include/net/ip6_tunnel.h')
| -rw-r--r-- | include/net/ip6_tunnel.h | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/include/net/ip6_tunnel.h b/include/net/ip6_tunnel.h index fa915fa0f703..ff788b665277 100644 --- a/include/net/ip6_tunnel.h +++ b/include/net/ip6_tunnel.h @@ -87,14 +87,15 @@ static inline void ip6tunnel_xmit(struct sock *sk, struct sk_buff *skb,  	int pkt_len, err;  	pkt_len = skb->len - skb_inner_network_offset(skb); -	err = ip6_local_out_sk(sk, skb); +	err = ip6_local_out(dev_net(skb_dst(skb)->dev), sk, skb);  	if (net_xmit_eval(err) == 0) { -		struct pcpu_sw_netstats *tstats = this_cpu_ptr(dev->tstats); +		struct pcpu_sw_netstats *tstats = get_cpu_ptr(dev->tstats);  		u64_stats_update_begin(&tstats->syncp);  		tstats->tx_bytes += pkt_len;  		tstats->tx_packets++;  		u64_stats_update_end(&tstats->syncp); +		put_cpu_ptr(tstats);  	} else {  		stats->tx_errors++;  		stats->tx_aborted_errors++; |