Hi all, Today's linux-next merge of the net-next tree got a conflict in net/ipv6/sit.c between commit cf71d2bc0b8a ("sit: fix panic with route cache in ip tunnels") from the tree and commit 1c213bd24ad0 ("net: introduce netdev_alloc_pcpu_stats() for drivers") from the net-next tree. I fixed it up (I think ... see below) and can carry the fix as necessary (no action is required). -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx diff --cc net/ipv6/sit.c index b4d74c86586c,958027be0e94..000000000000 --- a/net/ipv6/sit.c +++ b/net/ipv6/sit.c @@@ -1376,18 -1368,6 +1375,12 @@@ static int ipip6_tunnel_init(struct net if (!dev->tstats) return -ENOMEM; - for_each_possible_cpu(i) { - struct pcpu_sw_netstats *ipip6_tunnel_stats; - ipip6_tunnel_stats = per_cpu_ptr(dev->tstats, i); - u64_stats_init(&ipip6_tunnel_stats->syncp); - } - + tunnel->dst_cache = alloc_percpu(struct ip_tunnel_dst); + if (!tunnel->dst_cache) { + free_percpu(dev->tstats); + return -ENOMEM; + } + return 0; } @@@ -1412,18 -1391,6 +1404,12 @@@ static int __net_init ipip6_fb_tunnel_i if (!dev->tstats) return -ENOMEM; - for_each_possible_cpu(i) { - struct pcpu_sw_netstats *ipip6_fb_stats; - ipip6_fb_stats = per_cpu_ptr(dev->tstats, i); - u64_stats_init(&ipip6_fb_stats->syncp); - } - + tunnel->dst_cache = alloc_percpu(struct ip_tunnel_dst); + if (!tunnel->dst_cache) { + free_percpu(dev->tstats); + return -ENOMEM; + } + dev_hold(dev); rcu_assign_pointer(sitn->tunnels_wc[0], tunnel); return 0;
Attachment:
pgpIzc8hYsQkw.pgp
Description: PGP signature