diff options
author | Intiyaz Basha <intiyaz.basha@cavium.com> | 2018-03-23 17:36:58 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-03-25 16:18:52 -0400 |
commit | 95fbba1846d751cccd49c0a896230b3093254b71 (patch) | |
tree | a8e14c61b9d1a37649cf4805a68120a56923fb70 /drivers/net/ethernet/cavium/liquidio/octeon_network.h | |
parent | liquidio: Moved common function txqs_stop to octeon_network.h (diff) | |
download | linux-dev-95fbba1846d751cccd49c0a896230b3093254b71.tar.xz linux-dev-95fbba1846d751cccd49c0a896230b3093254b71.zip |
liquidio: Moved common function txqs_wake to octeon_network.h
Moving common function txqs_wake to octeon_network.h
Signed-off-by: Intiyaz Basha <intiyaz.basha@cavium.com>
Acked-by: Derek Chickles <derek.chickles@cavium.com>
Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r-- | drivers/net/ethernet/cavium/liquidio/octeon_network.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_network.h b/drivers/net/ethernet/cavium/liquidio/octeon_network.h index d8079e35ef6e..2d2f49b7f563 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_network.h +++ b/drivers/net/ethernet/cavium/liquidio/octeon_network.h @@ -522,4 +522,31 @@ static inline void txqs_stop(struct net_device *netdev) } } +/** + * \brief Wake Tx queues + * @param netdev network device + */ +static inline void txqs_wake(struct net_device *netdev) +{ + struct lio *lio = GET_LIO(netdev); + + if (netif_is_multiqueue(netdev)) { + int i; + + for (i = 0; i < netdev->num_tx_queues; i++) { + int qno = lio->linfo.txpciq[i % + lio->oct_dev->num_iqs].s.q_no; + + if (__netif_subqueue_stopped(netdev, i)) { + INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, qno, + tx_restart, 1); + netif_wake_subqueue(netdev, i); + } + } + } else { + INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, lio->txq, + tx_restart, 1); + netif_wake_queue(netdev); + } +} #endif |