|
@@ -90,11 +90,12 @@ static inline void ip6tunnel_xmit(struct sock *sk, struct sk_buff *skb,
|
|
err = ip6_local_out(dev_net(skb_dst(skb)->dev), sk, skb);
|
|
err = ip6_local_out(dev_net(skb_dst(skb)->dev), sk, skb);
|
|
|
|
|
|
if (net_xmit_eval(err) == 0) {
|
|
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);
|
|
u64_stats_update_begin(&tstats->syncp);
|
|
tstats->tx_bytes += pkt_len;
|
|
tstats->tx_bytes += pkt_len;
|
|
tstats->tx_packets++;
|
|
tstats->tx_packets++;
|
|
u64_stats_update_end(&tstats->syncp);
|
|
u64_stats_update_end(&tstats->syncp);
|
|
|
|
+ put_cpu_ptr(tstats);
|
|
} else {
|
|
} else {
|
|
stats->tx_errors++;
|
|
stats->tx_errors++;
|
|
stats->tx_aborted_errors++;
|
|
stats->tx_aborted_errors++;
|