diff options
Diffstat (limited to 'drivers/net/veth.c')
-rw-r--r-- | drivers/net/veth.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/net/veth.c b/drivers/net/veth.c index 5b374370f71..3aca92e80e1 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c @@ -14,6 +14,7 @@ #include <linux/etherdevice.h> #include <linux/u64_stats_sync.h> +#include <net/rtnetlink.h> #include <net/dst.h> #include <net/xfrm.h> #include <linux/veth.h> @@ -235,18 +236,9 @@ static int veth_change_mtu(struct net_device *dev, int new_mtu) static int veth_dev_init(struct net_device *dev) { - int i; - - dev->vstats = alloc_percpu(struct pcpu_vstats); + dev->vstats = netdev_alloc_pcpu_stats(struct pcpu_vstats); if (!dev->vstats) return -ENOMEM; - - for_each_possible_cpu(i) { - struct pcpu_vstats *veth_stats; - veth_stats = per_cpu_ptr(dev->vstats, i); - u64_stats_init(&veth_stats->syncp); - } - return 0; } @@ -333,10 +325,9 @@ static int veth_newlink(struct net *src_net, struct net_device *dev, nla_peer = data[VETH_INFO_PEER]; ifmp = nla_data(nla_peer); - err = nla_parse(peer_tb, IFLA_MAX, - nla_data(nla_peer) + sizeof(struct ifinfomsg), - nla_len(nla_peer) - sizeof(struct ifinfomsg), - ifla_policy); + err = rtnl_nla_parse_ifla(peer_tb, + nla_data(nla_peer) + sizeof(struct ifinfomsg), + nla_len(nla_peer) - sizeof(struct ifinfomsg)); if (err < 0) return err; |