summaryrefslogtreecommitdiffstats
path: root/drivers/net/sfc/nic.h
diff options
context:
space:
mode:
authorSteve Hodgson2010-06-01 13:19:39 +0200
committerDavid S. Miller2010-06-02 11:21:08 +0200
commit90d683afd1395016775c8d90508614f8d3000b81 (patch)
tree33c239c5cd1e607a22dca1af0fd3615cee584ef9 /drivers/net/sfc/nic.h
parentsfc: Allow DRV_GEN events to be used outside of selftests (diff)
downloadkernel-qcow2-linux-90d683afd1395016775c8d90508614f8d3000b81.tar.gz
kernel-qcow2-linux-90d683afd1395016775c8d90508614f8d3000b81.tar.xz
kernel-qcow2-linux-90d683afd1395016775c8d90508614f8d3000b81.zip
sfc: Remove efx_rx_queue::add_lock
Ensure that efx_fast_push_rx_descriptors() must only run from efx_process_channel() [NAPI], or when napi_disable() has been executed. Reimplement the slow fill by sending an event to the channel, so that NAPI runs, and hanging the subsequent fast fill off the event handler. Replace the sfc_refill workqueue and delayed work items with a timer. We do not need to stop this timer in efx_flush_all() because it's safe to send the event always; receiving it will be delayed until NAPI is restarted. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/sfc/nic.h')
-rw-r--r--drivers/net/sfc/nic.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/sfc/nic.h b/drivers/net/sfc/nic.h
index 186aab564c4a..95770e15115d 100644
--- a/drivers/net/sfc/nic.h
+++ b/drivers/net/sfc/nic.h
@@ -191,6 +191,7 @@ extern int efx_nic_rx_xoff_thresh, efx_nic_rx_xon_thresh;
extern int efx_nic_init_interrupt(struct efx_nic *efx);
extern void efx_nic_enable_interrupts(struct efx_nic *efx);
extern void efx_nic_generate_test_event(struct efx_channel *channel);
+extern void efx_nic_generate_fill_event(struct efx_channel *channel);
extern void efx_nic_generate_interrupt(struct efx_nic *efx);
extern void efx_nic_disable_interrupts(struct efx_nic *efx);
extern void efx_nic_fini_interrupt(struct efx_nic *efx);