]> 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)
commit2d690f7c47cb7226908cf96f9d2f606d70a0d1a6
treee60e2fc6a18ec5cfaf079e9855246a9282742667
parent250aeee18cd6df40bef3fca644ffc025f1426c5c
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