diff options
| author | Suresh Reddy <[email protected]> | 2018-07-31 15:39:42 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2018-08-01 16:39:09 +0000 |
| commit | c1b3bdb2ffa9a343ded117e01d6b4b43b9df53f8 (patch) | |
| tree | 504b794a8191bacb67460733973759745d224f1b /net/tipc/socket.c | |
| parent | net/mlx5e: Fix uninitialized variable (diff) | |
| download | kernel-c1b3bdb2ffa9a343ded117e01d6b4b43b9df53f8.tar.gz kernel-c1b3bdb2ffa9a343ded117e01d6b4b43b9df53f8.zip | |
be2net: gather debug info and reset adapter (only for Lancer) on a tx-timeout
This patch handles a TX-timeout as follows:
1) This patch gathers and prints the following info that can
help in diagnosing the cause of a TX-timeout.
a) TX queue and completion queue entries.
b) SKB and TCP/UDP header details.
2) For Lancer NICs (TX-timeout recovery is not supported for
BE3/Skyhawk-R NICs), it recovers from the TX timeout as follows:
a) On a TX-timeout, driver sets the PHYSDEV_CONTROL_FW_RESET_MASK
bit in the PHYSDEV_CONTROL register. Lancer firmware goes into
an error state and indicates this back to the driver via a bit
in a doorbell register.
b) Driver detects this and calls be_err_recover(). DMA is disabled,
all pending TX skbs are unmapped and freed (be_close()). All rings
are destroyed (be_clear()).
c) The driver waits for the FW to re-initialize and re-creates all
rings along with other data structs (be_resume())
Signed-off-by: Suresh Reddy <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/tipc/socket.c')
0 files changed, 0 insertions, 0 deletions
