|
@@ -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)) {
|