sfc: Remove efx_rx_queue::add_lock
authorSteve Hodgson <shodgson@solarflare.com>
Tue, 1 Jun 2010 11:19:39 +0000 (11:19 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 2 Jun 2010 09:21:08 +0000 (02:21 -0700)
commit90d683afd1395016775c8d90508614f8d3000b81
tree33c239c5cd1e607a22dca1af0fd3615cee584ef9
parentd730dc527a5abd4717f6320e82cfce54edc882a3
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>
drivers/net/sfc/efx.c
drivers/net/sfc/efx.h
drivers/net/sfc/net_driver.h
drivers/net/sfc/nic.c
drivers/net/sfc/nic.h
drivers/net/sfc/rx.c