diff options
author | Jon Cooper <jcooper@solarflare.com> | 2013-10-02 06:04:14 -0400 |
---|---|---|
committer | Ben Hutchings <bhutchings@solarflare.com> | 2013-12-12 17:06:50 -0500 |
commit | cce28794bc99c15f0d4c98936a473ac6e21be0ad (patch) | |
tree | 233388f81465bee1367f3c9dab8ae637bd9af895 /drivers/net/ethernet/sfc/efx.c | |
parent | 92a04168390a2cb67cb60891e5870626d58c2abb (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.c | 6 |
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); |