mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-26 16:25:07 +07:00
8e2b60cd18
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> |
||
---|---|---|
.. | ||
cassini.c | ||
cassini.h | ||
Kconfig | ||
Makefile | ||
niu.c | ||
niu.h | ||
sunbmac.c | ||
sunbmac.h | ||
sungem.c | ||
sungem.h | ||
sunhme.c | ||
sunhme.h | ||
sunqe.c | ||
sunqe.h | ||
sunvnet.c | ||
sunvnet.h |