diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2008-09-01 12:47:48 +0100 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-09-03 09:53:46 -0400 |
commit | 8831da7b6c4b15c0be0ba849be4aea5eed3999c6 (patch) | |
tree | 6bdfd5433f9eb4358a67504d85fb903fe17fd9d9 /drivers/net/sfc/efx.c | |
parent | 64ee3120f73b9e904d97ba66386b1e8e93b81385 (diff) | |
download | lwn-8831da7b6c4b15c0be0ba849be4aea5eed3999c6.tar.gz lwn-8831da7b6c4b15c0be0ba849be4aea5eed3999c6.zip |
sfc: Cleanup RX queue information
Rename efx_nic::rss_queues to the more obvious n_rx_queues
Remove efx_rx_queue::used and other stuff that's redundant with it.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/sfc/efx.c')
-rw-r--r-- | drivers/net/sfc/efx.c | 43 |
1 files changed, 14 insertions, 29 deletions
diff --git a/drivers/net/sfc/efx.c b/drivers/net/sfc/efx.c index 2deac7b04282..ba4369c8a834 100644 --- a/drivers/net/sfc/efx.c +++ b/drivers/net/sfc/efx.c @@ -859,20 +859,20 @@ static void efx_probe_interrupts(struct efx_nic *efx) * We will need one channel per interrupt. */ wanted_ints = rss_cpus ? rss_cpus : efx_wanted_rx_queues(); - efx->rss_queues = min(wanted_ints, max_channels); + efx->n_rx_queues = min(wanted_ints, max_channels); - for (i = 0; i < efx->rss_queues; i++) + for (i = 0; i < efx->n_rx_queues; i++) xentries[i].entry = i; - rc = pci_enable_msix(efx->pci_dev, xentries, efx->rss_queues); + rc = pci_enable_msix(efx->pci_dev, xentries, efx->n_rx_queues); if (rc > 0) { - EFX_BUG_ON_PARANOID(rc >= efx->rss_queues); - efx->rss_queues = rc; + EFX_BUG_ON_PARANOID(rc >= efx->n_rx_queues); + efx->n_rx_queues = rc; rc = pci_enable_msix(efx->pci_dev, xentries, - efx->rss_queues); + efx->n_rx_queues); } if (rc == 0) { - for (i = 0; i < efx->rss_queues; i++) + for (i = 0; i < efx->n_rx_queues; i++) efx->channel[i].irq = xentries[i].vector; } else { /* Fall back to single channel MSI */ @@ -883,7 +883,7 @@ static void efx_probe_interrupts(struct efx_nic *efx) /* Try single interrupt MSI */ if (efx->interrupt_mode == EFX_INT_MODE_MSI) { - efx->rss_queues = 1; + efx->n_rx_queues = 1; rc = pci_enable_msi(efx->pci_dev); if (rc == 0) { efx->channel[0].irq = efx->pci_dev->irq; @@ -895,7 +895,7 @@ static void efx_probe_interrupts(struct efx_nic *efx) /* Assume legacy interrupts */ if (efx->interrupt_mode == EFX_INT_MODE_LEGACY) { - efx->rss_queues = 1; + efx->n_rx_queues = 1; efx->legacy_irq = efx->pci_dev->irq; } } @@ -914,14 +914,10 @@ static void efx_remove_interrupts(struct efx_nic *efx) efx->legacy_irq = 0; } -/* Select number of used resources - * Should be called after probe_interrupts() - */ -static void efx_select_used(struct efx_nic *efx) +static void efx_set_channels(struct efx_nic *efx) { struct efx_tx_queue *tx_queue; struct efx_rx_queue *rx_queue; - int i; efx_for_each_tx_queue(tx_queue, efx) { if (!EFX_INT_MODE_USE_MSI(efx) && separate_tx_and_rx_channels) @@ -931,19 +927,9 @@ static void efx_select_used(struct efx_nic *efx) tx_queue->channel->used_flags |= EFX_USED_BY_TX; } - /* RX queues. Each has a dedicated channel. */ - for (i = 0; i < EFX_MAX_RX_QUEUES; i++) { - rx_queue = &efx->rx_queue[i]; - - if (i < efx->rss_queues) { - rx_queue->used = true; - /* If we allow multiple RX queues per channel - * we need to decide that here - */ - rx_queue->channel = &efx->channel[rx_queue->queue]; - rx_queue->channel->used_flags |= EFX_USED_BY_RX; - rx_queue++; - } + efx_for_each_rx_queue(rx_queue, efx) { + rx_queue->channel = &efx->channel[rx_queue->queue]; + rx_queue->channel->used_flags |= EFX_USED_BY_RX; } } @@ -962,8 +948,7 @@ static int efx_probe_nic(struct efx_nic *efx) * in MSI-X interrupts. */ efx_probe_interrupts(efx); - /* Determine number of RX queues and TX queues */ - efx_select_used(efx); + efx_set_channels(efx); /* Initialise the interrupt moderation settings */ efx_init_irq_moderation(efx, tx_irq_mod_usec, rx_irq_mod_usec); |