diff options
Diffstat (limited to 'drivers/net/ethernet/sfc/rx.c')
-rw-r--r-- | drivers/net/ethernet/sfc/rx.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/ethernet/sfc/rx.c b/drivers/net/ethernet/sfc/rx.c index 6af9cfda50fb..8b482dee4eb0 100644 --- a/drivers/net/ethernet/sfc/rx.c +++ b/drivers/net/ethernet/sfc/rx.c | |||
@@ -326,6 +326,9 @@ void efx_fast_push_rx_descriptors(struct efx_rx_queue *rx_queue) | |||
326 | unsigned int fill_level, batch_size; | 326 | unsigned int fill_level, batch_size; |
327 | int space, rc = 0; | 327 | int space, rc = 0; |
328 | 328 | ||
329 | if (!rx_queue->refill_enabled) | ||
330 | return; | ||
331 | |||
329 | /* Calculate current fill level, and exit if we don't need to fill */ | 332 | /* Calculate current fill level, and exit if we don't need to fill */ |
330 | fill_level = (rx_queue->added_count - rx_queue->removed_count); | 333 | fill_level = (rx_queue->added_count - rx_queue->removed_count); |
331 | EFX_BUG_ON_PARANOID(fill_level > rx_queue->efx->rxq_entries); | 334 | EFX_BUG_ON_PARANOID(fill_level > rx_queue->efx->rxq_entries); |
@@ -738,9 +741,9 @@ void efx_init_rx_queue(struct efx_rx_queue *rx_queue) | |||
738 | 741 | ||
739 | rx_queue->max_fill = max_fill; | 742 | rx_queue->max_fill = max_fill; |
740 | rx_queue->fast_fill_trigger = trigger; | 743 | rx_queue->fast_fill_trigger = trigger; |
744 | rx_queue->refill_enabled = true; | ||
741 | 745 | ||
742 | /* Set up RX descriptor ring */ | 746 | /* Set up RX descriptor ring */ |
743 | rx_queue->enabled = true; | ||
744 | efx_nic_init_rx(rx_queue); | 747 | efx_nic_init_rx(rx_queue); |
745 | } | 748 | } |
746 | 749 | ||
@@ -753,9 +756,6 @@ void efx_fini_rx_queue(struct efx_rx_queue *rx_queue) | |||
753 | netif_dbg(rx_queue->efx, drv, rx_queue->efx->net_dev, | 756 | netif_dbg(rx_queue->efx, drv, rx_queue->efx->net_dev, |
754 | "shutting down RX queue %d\n", efx_rx_queue_index(rx_queue)); | 757 | "shutting down RX queue %d\n", efx_rx_queue_index(rx_queue)); |
755 | 758 | ||
756 | /* A flush failure might have left rx_queue->enabled */ | ||
757 | rx_queue->enabled = false; | ||
758 | |||
759 | del_timer_sync(&rx_queue->slow_fill); | 759 | del_timer_sync(&rx_queue->slow_fill); |
760 | efx_nic_fini_rx(rx_queue); | 760 | efx_nic_fini_rx(rx_queue); |
761 | 761 | ||