Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 315724
b: refs/heads/master
c: d40156a
h: refs/heads/master
v: v3
  • Loading branch information
Jiri Pirko authored and David S. Miller committed Jul 20, 2012
1 parent d3982be commit 4815620
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 19 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ee6ae1a1d58c70fc864bc777a36be56b0880ebff
refs/heads/master: d40156aa5ecbd51fed932ed4813df82b56e5ff4d
14 changes: 8 additions & 6 deletions trunk/drivers/net/bonding/bond_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -4845,17 +4845,19 @@ static int bond_validate(struct nlattr *tb[], struct nlattr *data[])
return 0;
}

static int bond_get_tx_queues(struct net *net, struct nlattr *tb[])
static unsigned int bond_get_num_tx_queues(void)
{
return tx_queues;
}

static struct rtnl_link_ops bond_link_ops __read_mostly = {
.kind = "bond",
.priv_size = sizeof(struct bonding),
.setup = bond_setup,
.validate = bond_validate,
.get_tx_queues = bond_get_tx_queues,
.kind = "bond",
.priv_size = sizeof(struct bonding),
.setup = bond_setup,
.validate = bond_validate,
.get_num_tx_queues = bond_get_num_tx_queues,
.get_num_rx_queues = bond_get_num_tx_queues, /* Use the same number
as for TX queues */
};

/* Create a new bond based on the specified name and bonding parameters.
Expand Down
10 changes: 6 additions & 4 deletions trunk/include/net/rtnetlink.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,10 @@ static inline int rtnl_msg_family(const struct nlmsghdr *nlh)
* @get_xstats_size: Function to calculate required room for dumping device
* specific statistics
* @fill_xstats: Function to dump device specific statistics
* @get_tx_queues: Function to determine number of transmit queues to create when
* creating a new device.
* @get_num_tx_queues: Function to determine number of transmit queues
* to create when creating a new device.
* @get_num_rx_queues: Function to determine number of receive queues
* to create when creating a new device.
*/
struct rtnl_link_ops {
struct list_head list;
Expand Down Expand Up @@ -77,8 +79,8 @@ struct rtnl_link_ops {
size_t (*get_xstats_size)(const struct net_device *dev);
int (*fill_xstats)(struct sk_buff *skb,
const struct net_device *dev);
int (*get_tx_queues)(struct net *net,
struct nlattr *tb[]);
unsigned int (*get_num_tx_queues)(void);
unsigned int (*get_num_rx_queues)(void);
};

extern int __rtnl_link_register(struct rtnl_link_ops *ops);
Expand Down
16 changes: 8 additions & 8 deletions trunk/net/core/rtnetlink.c
Original file line number Diff line number Diff line change
Expand Up @@ -1624,17 +1624,17 @@ struct net_device *rtnl_create_link(struct net *src_net, struct net *net,
{
int err;
struct net_device *dev;
unsigned int num_queues = 1;
unsigned int num_tx_queues = 1;
unsigned int num_rx_queues = 1;

if (ops->get_tx_queues) {
err = ops->get_tx_queues(src_net, tb);
if (err < 0)
goto err;
num_queues = err;
}
if (ops->get_num_tx_queues)
num_tx_queues = ops->get_num_tx_queues();
if (ops->get_num_rx_queues)
num_rx_queues = ops->get_num_rx_queues();

err = -ENOMEM;
dev = alloc_netdev_mq(ops->priv_size, ifname, ops->setup, num_queues);
dev = alloc_netdev_mqs(ops->priv_size, ifname, ops->setup,
num_tx_queues, num_rx_queues);
if (!dev)
goto err;

Expand Down

0 comments on commit 4815620

Please sign in to comment.