mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-17 18:07:43 +07:00
net: core: Make netif_wake_subqueue a wrapper
netif_wake_subqueue() is duplicating the same thing that netif_tx_wake_queue() does, so make it call it directly after looking up the queue from the index. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
171d87aca0
commit
738b35ccee
@ -3106,7 +3106,19 @@ static inline bool netif_subqueue_stopped(const struct net_device *dev,
|
|||||||
return __netif_subqueue_stopped(dev, skb_get_queue_mapping(skb));
|
return __netif_subqueue_stopped(dev, skb_get_queue_mapping(skb));
|
||||||
}
|
}
|
||||||
|
|
||||||
void netif_wake_subqueue(struct net_device *dev, u16 queue_index);
|
/**
|
||||||
|
* netif_wake_subqueue - allow sending packets on subqueue
|
||||||
|
* @dev: network device
|
||||||
|
* @queue_index: sub queue index
|
||||||
|
*
|
||||||
|
* Resume individual transmit queue of a device with multiple transmit queues.
|
||||||
|
*/
|
||||||
|
static inline void netif_wake_subqueue(struct net_device *dev, u16 queue_index)
|
||||||
|
{
|
||||||
|
struct netdev_queue *txq = netdev_get_tx_queue(dev, queue_index);
|
||||||
|
|
||||||
|
netif_tx_wake_queue(txq);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_XPS
|
#ifdef CONFIG_XPS
|
||||||
int netif_set_xps_queue(struct net_device *dev, const struct cpumask *mask,
|
int netif_set_xps_queue(struct net_device *dev, const struct cpumask *mask,
|
||||||
|
@ -2408,28 +2408,6 @@ void netif_schedule_queue(struct netdev_queue *txq)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(netif_schedule_queue);
|
EXPORT_SYMBOL(netif_schedule_queue);
|
||||||
|
|
||||||
/**
|
|
||||||
* netif_wake_subqueue - allow sending packets on subqueue
|
|
||||||
* @dev: network device
|
|
||||||
* @queue_index: sub queue index
|
|
||||||
*
|
|
||||||
* Resume individual transmit queue of a device with multiple transmit queues.
|
|
||||||
*/
|
|
||||||
void netif_wake_subqueue(struct net_device *dev, u16 queue_index)
|
|
||||||
{
|
|
||||||
struct netdev_queue *txq = netdev_get_tx_queue(dev, queue_index);
|
|
||||||
|
|
||||||
if (test_and_clear_bit(__QUEUE_STATE_DRV_XOFF, &txq->state)) {
|
|
||||||
struct Qdisc *q;
|
|
||||||
|
|
||||||
rcu_read_lock();
|
|
||||||
q = rcu_dereference(txq->qdisc);
|
|
||||||
__netif_schedule(q);
|
|
||||||
rcu_read_unlock();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(netif_wake_subqueue);
|
|
||||||
|
|
||||||
void netif_tx_wake_queue(struct netdev_queue *dev_queue)
|
void netif_tx_wake_queue(struct netdev_queue *dev_queue)
|
||||||
{
|
{
|
||||||
if (test_and_clear_bit(__QUEUE_STATE_DRV_XOFF, &dev_queue->state)) {
|
if (test_and_clear_bit(__QUEUE_STATE_DRV_XOFF, &dev_queue->state)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user