diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2010-04-28 05:30:43 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-28 15:44:44 -0400 |
commit | a4900ac9f7d10ad062e54dd03125e3619e0ac17a (patch) | |
tree | 32a6f316ccbda7994d5c52197d8a2b5ebb60d6da /drivers/net/sfc/ethtool.c | |
parent | 5298c37f4d1f0360082be9d9e3a236b9cc114a03 (diff) |
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>
Diffstat (limited to 'drivers/net/sfc/ethtool.c')
-rw-r--r-- | drivers/net/sfc/ethtool.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/sfc/ethtool.c b/drivers/net/sfc/ethtool.c index cbe9319f8322..22026bfbc4c1 100644 --- a/drivers/net/sfc/ethtool.c +++ b/drivers/net/sfc/ethtool.c | |||
@@ -647,7 +647,7 @@ static int efx_ethtool_get_coalesce(struct net_device *net_dev, | |||
647 | efx_for_each_tx_queue(tx_queue, efx) { | 647 | efx_for_each_tx_queue(tx_queue, efx) { |
648 | channel = tx_queue->channel; | 648 | channel = tx_queue->channel; |
649 | if (channel->irq_moderation < coalesce->tx_coalesce_usecs_irq) { | 649 | if (channel->irq_moderation < coalesce->tx_coalesce_usecs_irq) { |
650 | if (channel->used_flags != EFX_USED_BY_RX_TX) | 650 | if (channel->channel < efx->n_rx_channels) |
651 | coalesce->tx_coalesce_usecs_irq = | 651 | coalesce->tx_coalesce_usecs_irq = |
652 | channel->irq_moderation; | 652 | channel->irq_moderation; |
653 | else | 653 | else |
@@ -690,7 +690,7 @@ static int efx_ethtool_set_coalesce(struct net_device *net_dev, | |||
690 | 690 | ||
691 | /* If the channel is shared only allow RX parameters to be set */ | 691 | /* If the channel is shared only allow RX parameters to be set */ |
692 | efx_for_each_tx_queue(tx_queue, efx) { | 692 | efx_for_each_tx_queue(tx_queue, efx) { |
693 | if ((tx_queue->channel->used_flags == EFX_USED_BY_RX_TX) && | 693 | if ((tx_queue->channel->channel < efx->n_rx_channels) && |
694 | tx_usecs) { | 694 | tx_usecs) { |
695 | EFX_ERR(efx, "Channel is shared. " | 695 | EFX_ERR(efx, "Channel is shared. " |
696 | "Only RX coalescing may be set\n"); | 696 | "Only RX coalescing may be set\n"); |