Skip to content

Commit

Permalink
netdevice: move netdev_cap_txqueue for shared usage to header
Browse files Browse the repository at this point in the history
In order to allow users to invoke netdev_cap_txqueue, it needs to
be moved into netdevice.h header file. While at it, also add kernel
doc header to document the API.

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Daniel Borkmann authored and David S. Miller committed Feb 17, 2014
1 parent 99932d4 commit b9507bd
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 12 deletions.
20 changes: 20 additions & 0 deletions include/linux/netdevice.h
Original file line number Diff line number Diff line change
Expand Up @@ -2278,6 +2278,26 @@ static inline void netdev_reset_queue(struct net_device *dev_queue)
netdev_tx_reset_queue(netdev_get_tx_queue(dev_queue, 0));
}

/**
* netdev_cap_txqueue - check if selected tx queue exceeds device queues
* @dev: network device
* @queue_index: given tx queue index
*
* Returns 0 if given tx queue index >= number of device tx queues,
* otherwise returns the originally passed tx queue index.
*/
static inline u16 netdev_cap_txqueue(struct net_device *dev, u16 queue_index)
{
if (unlikely(queue_index >= dev->real_num_tx_queues)) {
net_warn_ratelimited("%s selects TX queue %d, but real number of TX queues is %d\n",
dev->name, queue_index,
dev->real_num_tx_queues);
return 0;
}

return queue_index;
}

/**
* netif_running - test if up
* @dev: network device
Expand Down
13 changes: 1 addition & 12 deletions net/core/flow_dissector.c
Original file line number Diff line number Diff line change
Expand Up @@ -323,17 +323,6 @@ u32 __skb_get_poff(const struct sk_buff *skb)
return poff;
}

static inline u16 dev_cap_txqueue(struct net_device *dev, u16 queue_index)
{
if (unlikely(queue_index >= dev->real_num_tx_queues)) {
net_warn_ratelimited("%s selects TX queue %d, but real number of TX queues is %d\n",
dev->name, queue_index,
dev->real_num_tx_queues);
return 0;
}
return queue_index;
}

static inline int get_xps_queue(struct net_device *dev, struct sk_buff *skb)
{
#ifdef CONFIG_XPS
Expand Down Expand Up @@ -408,7 +397,7 @@ struct netdev_queue *netdev_pick_tx(struct net_device *dev,
queue_index = __netdev_pick_tx(dev, skb);

if (!accel_priv)
queue_index = dev_cap_txqueue(dev, queue_index);
queue_index = netdev_cap_txqueue(dev, queue_index);
}

skb_set_queue_mapping(skb, queue_index);
Expand Down

0 comments on commit b9507bd

Please sign in to comment.