aboutsummaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
Diffstat (limited to 'net/core')
-rw-r--r--net/core/rtnetlink.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index b44775f9f2bf..bbcba2a41018 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -974,12 +974,20 @@ struct net_device *rtnl_create_link(struct net *net, char *ifname,
974{ 974{
975 int err; 975 int err;
976 struct net_device *dev; 976 struct net_device *dev;
977 unsigned int num_queues = 1;
978 unsigned int real_num_queues = 1;
977 979
980 if (ops->get_tx_queues) {
981 err = ops->get_tx_queues(net, tb, &num_queues, &real_num_queues);
982 if (err)
983 goto err;
984 }
978 err = -ENOMEM; 985 err = -ENOMEM;
979 dev = alloc_netdev(ops->priv_size, ifname, ops->setup); 986 dev = alloc_netdev_mq(ops->priv_size, ifname, ops->setup, num_queues);
980 if (!dev) 987 if (!dev)
981 goto err; 988 goto err;
982 989
990 dev->real_num_tx_queues = real_num_queues;
983 if (strchr(dev->name, '%')) { 991 if (strchr(dev->name, '%')) {
984 err = dev_alloc_name(dev, dev->name); 992 err = dev_alloc_name(dev, dev->name);
985 if (err < 0) 993 if (err < 0)