netdevice: move netdev_cap_txqueue for shared usage to header
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>
This commit is contained in:

committed by
David S. Miller

parent
99932d4fc0
commit
b9507bdaf4
@@ -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_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
|
* netif_running - test if up
|
||||||
* @dev: network device
|
* @dev: network device
|
||||||
|
@@ -323,17 +323,6 @@ u32 __skb_get_poff(const struct sk_buff *skb)
|
|||||||
return poff;
|
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)
|
static inline int get_xps_queue(struct net_device *dev, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_XPS
|
#ifdef CONFIG_XPS
|
||||||
@@ -408,7 +397,7 @@ struct netdev_queue *netdev_pick_tx(struct net_device *dev,
|
|||||||
queue_index = __netdev_pick_tx(dev, skb);
|
queue_index = __netdev_pick_tx(dev, skb);
|
||||||
|
|
||||||
if (!accel_priv)
|
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);
|
skb_set_queue_mapping(skb, queue_index);
|
||||||
|
Reference in New Issue
Block a user