diff options
author | 2015-01-26 15:54:27 -0500 | |
---|---|---|
committer | 2015-01-27 00:25:21 -0800 | |
commit | 8e2b60cd18381a2f102dc6157ea2481a9ddd0001 (patch) | |
tree | 08a04d624d6b289fa51570c462c7b5ae7a102a6c /tools/perf/scripts/python/call-graph-from-postgresql.py | |
parent | sunvnet: free pending tx buffers before clearing ring data (diff) | |
download | linux-dev-8e2b60cd18381a2f102dc6157ea2481a9ddd0001.tar.xz linux-dev-8e2b60cd18381a2f102dc6157ea2481a9ddd0001.zip |
sunvnet: improve error handling when a remote crashes
If a remote machine crashes while there are pending transmit buffers, the
sunvnet driver reallocates the ring descriptors giving us enries that have
state VIO_DESC_FREE but also an allocated skb. This results in a BUG_ON()
call when the remote reboots and we reach that point in the ring.
This patch:
1) clears pending tx packets in the ring on port reset
2) changes a BUG_ON() to a pr_warn() when a remote host has given us an invalid
descriptor state
3) collapses multiple active buffer frees in a ring to a single message per
ring and adds the device name and remote MAC address
This fixes the particular problem of not cleaning up pending buffers on a
reset, but also prevents us from crashing if the remote handles descriptors
out of order or sets an unexpected state for a descriptor.
Signed-off-by: David L Stevens <david.stevens@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/perf/scripts/python/call-graph-from-postgresql.py')
0 files changed, 0 insertions, 0 deletions