aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/sfc/efx.c
diff options
context:
space:
mode:
authorJon Cooper <jcooper@solarflare.com>2013-10-02 06:04:14 -0400
committerBen Hutchings <bhutchings@solarflare.com>2013-12-12 17:06:50 -0500
commitcce28794bc99c15f0d4c98936a473ac6e21be0ad (patch)
tree233388f81465bee1367f3c9dab8ae637bd9af895 /drivers/net/ethernet/sfc/efx.c
parent92a04168390a2cb67cb60891e5870626d58c2abb (diff)
sfc: Make initial fill of RX descriptors synchronous
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Diffstat (limited to 'drivers/net/ethernet/sfc/efx.c')
-rw-r--r--drivers/net/ethernet/sfc/efx.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c
index 869418164364..5e2454d07137 100644
--- a/drivers/net/ethernet/sfc/efx.c
+++ b/drivers/net/ethernet/sfc/efx.c
@@ -253,7 +253,7 @@ static int efx_process_channel(struct efx_channel *channel, int budget)
253 efx_channel_get_rx_queue(channel); 253 efx_channel_get_rx_queue(channel);
254 254
255 efx_rx_flush_packet(channel); 255 efx_rx_flush_packet(channel);
256 efx_fast_push_rx_descriptors(rx_queue); 256 efx_fast_push_rx_descriptors(rx_queue, true);
257 } 257 }
258 258
259 return spent; 259 return spent;
@@ -646,7 +646,9 @@ static void efx_start_datapath(struct efx_nic *efx)
646 efx_for_each_channel_rx_queue(rx_queue, channel) { 646 efx_for_each_channel_rx_queue(rx_queue, channel) {
647 efx_init_rx_queue(rx_queue); 647 efx_init_rx_queue(rx_queue);
648 atomic_inc(&efx->active_queues); 648 atomic_inc(&efx->active_queues);
649 efx_nic_generate_fill_event(rx_queue); 649 efx_stop_eventq(channel);
650 efx_fast_push_rx_descriptors(rx_queue, false);
651 efx_start_eventq(channel);
650 } 652 }
651 653
652 WARN_ON(channel->rx_pkt_n_frags); 654 WARN_ON(channel->rx_pkt_n_frags);