aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/bonding/bond_main.c7
-rw-r--r--include/net/rtnetlink.h5
-rw-r--r--net/core/rtnetlink.c8
3 files changed, 8 insertions, 12 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 62d2409bb293..53ee6a0a3681 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -4820,12 +4820,9 @@ static int bond_validate(struct nlattr *tb[], struct nlattr *data[])
4820 return 0; 4820 return 0;
4821} 4821}
4822 4822
4823static int bond_get_tx_queues(struct net *net, struct nlattr *tb[], 4823static int bond_get_tx_queues(struct net *net, const struct nlattr *tb[])
4824 unsigned int *num_queues,
4825 unsigned int *real_num_queues)
4826{ 4824{
4827 *num_queues = tx_queues; 4825 return tx_queues;
4828 return 0;
4829} 4826}
4830 4827
4831static struct rtnl_link_ops bond_link_ops __read_mostly = { 4828static struct rtnl_link_ops bond_link_ops __read_mostly = {
diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h
index 370293901971..58243739212c 100644
--- a/include/net/rtnetlink.h
+++ b/include/net/rtnetlink.h
@@ -75,9 +75,8 @@ struct rtnl_link_ops {
75 size_t (*get_xstats_size)(const struct net_device *dev); 75 size_t (*get_xstats_size)(const struct net_device *dev);
76 int (*fill_xstats)(struct sk_buff *skb, 76 int (*fill_xstats)(struct sk_buff *skb,
77 const struct net_device *dev); 77 const struct net_device *dev);
78 int (*get_tx_queues)(struct net *net, struct nlattr *tb[], 78 int (*get_tx_queues)(struct net *net,
79 unsigned int *tx_queues, 79 const struct nlattr *tb[]);
80 unsigned int *real_tx_queues);
81}; 80};
82 81
83extern int __rtnl_link_register(struct rtnl_link_ops *ops); 82extern int __rtnl_link_register(struct rtnl_link_ops *ops);
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 545a969672ab..4a0d8cfff2a0 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -1640,14 +1640,14 @@ struct net_device *rtnl_create_link(struct net *src_net, struct net *net,
1640 int err; 1640 int err;
1641 struct net_device *dev; 1641 struct net_device *dev;
1642 unsigned int num_queues = 1; 1642 unsigned int num_queues = 1;
1643 unsigned int real_num_queues = 1;
1644 1643
1645 if (ops->get_tx_queues) { 1644 if (ops->get_tx_queues) {
1646 err = ops->get_tx_queues(src_net, tb, &num_queues, 1645 err = ops->get_tx_queues(src_net, tb);
1647 &real_num_queues); 1646 if (err < 0)
1648 if (err)
1649 goto err; 1647 goto err;
1648 num_queues = err;
1650 } 1649 }
1650
1651 err = -ENOMEM; 1651 err = -ENOMEM;
1652 dev = alloc_netdev_mq(ops->priv_size, ifname, ops->setup, num_queues); 1652 dev = alloc_netdev_mq(ops->priv_size, ifname, ops->setup, num_queues);
1653 if (!dev) 1653 if (!dev)