sfc: Create multiple TX queues
Create a core TX queue and 2 hardware TX queues for each channel. If separate_tx_channels is set, create equal numbers of RX and TX channels instead. Rewrite the channel and queue iteration macros accordingly. Eliminate efx_channel::used_flags as redundant. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
5298c37f4d
commit
a4900ac9f7
@ -647,7 +647,7 @@ static int efx_ethtool_get_coalesce(struct net_device *net_dev,
|
||||
efx_for_each_tx_queue(tx_queue, efx) {
|
||||
channel = tx_queue->channel;
|
||||
if (channel->irq_moderation < coalesce->tx_coalesce_usecs_irq) {
|
||||
if (channel->used_flags != EFX_USED_BY_RX_TX)
|
||||
if (channel->channel < efx->n_rx_channels)
|
||||
coalesce->tx_coalesce_usecs_irq =
|
||||
channel->irq_moderation;
|
||||
else
|
||||
@ -690,7 +690,7 @@ static int efx_ethtool_set_coalesce(struct net_device *net_dev,
|
||||
|
||||
/* If the channel is shared only allow RX parameters to be set */
|
||||
efx_for_each_tx_queue(tx_queue, efx) {
|
||||
if ((tx_queue->channel->used_flags == EFX_USED_BY_RX_TX) &&
|
||||
if ((tx_queue->channel->channel < efx->n_rx_channels) &&
|
||||
tx_usecs) {
|
||||
EFX_ERR(efx, "Channel is shared. "
|
||||
"Only RX coalescing may be set\n");
|
||||
|
Reference in New Issue
Block a user