]> git.baikalelectronics.ru Git - kernel.git/commit
sfc: Disable flow control during flushes
authorSteve Hodgson <shodgson@solarflare.com>
Mon, 23 May 2011 11:18:45 +0000 (12:18 +0100)
committerBen Hutchings <bhutchings@solarflare.com>
Thu, 16 Feb 2012 00:25:07 +0000 (00:25 +0000)
commit4131ca97c475d1f48aeded423c6f80bb4e259d8c
tree5d39056ca66b6be3190ff9df902eb404acc17eda
parentfc502152917ff03b93b34f81087f1d77319445a6
sfc: Disable flow control during flushes

The TX DMA engine issues upstream read requests when there is room in
the TX FIFO for the completion. However, the fetches for the rest of
the packet might be delayed by any back pressure.  Since a flush must
wait for an EOP, the entire flush may be delayed by back pressure.

Mitigate this by disabling flow control before the flushes are
started.  Since PF and VF flushes run in parallel introduce
fc_disable, a reference count of the number of flushes outstanding.

The same principle could be applied to Falcon, but that
would bring with it its own testing.

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