]> git.baikalelectronics.ru Git - kernel.git/commit
sfc: Leave interrupts and event queues enabled whenever we can
authorBen Hutchings <bhutchings@solarflare.com>
Wed, 8 Feb 2012 00:11:20 +0000 (00:11 +0000)
committerBen Hutchings <bhutchings@solarflare.com>
Thu, 16 Feb 2012 00:24:46 +0000 (00:24 +0000)
commit588d1c3cb0501e2e9571430ec5cd2ebb39a07388
treee60e2fc6a18ec5cfaf079e9855246a9282742667
parent07b8373101eee7bfb5a2715743ba27ece408e5af
sfc: Leave interrupts and event queues enabled whenever we can

When SR-IOV is enabled we may receive FLR (Function-Level Reset)
events, associated queue flush events and requests from VF drivers at
any time.  Therefore we need to keep event queues and interrupts
enabled whenever possible.

Currently we stop interrupt-driven event processing before flushing RX
and TX queues; efx_nic_flush_queues() then polls event queues for
flush events and discards any others it finds.  Change it to work with
the regular event handling functions.

Currently efx_start_channel() fills RX queues synchronously when a
device is brought up.  This could now race with NAPI, so change it to
send fill events.

This was almost entirely written by Steve Hodgson, formerly
shodgson@solarflare.com.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
drivers/net/ethernet/sfc/efx.c
drivers/net/ethernet/sfc/net_driver.h
drivers/net/ethernet/sfc/nic.c
drivers/net/ethernet/sfc/rx.c