]> www.infradead.org Git - users/dwmw2/linux.git/commit
ibmvnic: Properly dispose of all skbs during a failover.
authorRick Lindsley <ricklind@us.ibm.com>
Sat, 2 Jul 2022 10:37:12 +0000 (03:37 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Jul 2022 14:32:21 +0000 (16:32 +0200)
commit23cdc57d88d14d76f2bf0c9d747ef2508858d7e5
tree3cc3ec12356ae92250fbc5b46f0afb1e74a79acc
parent2b4659c145bafe3cdaf2a2cde08fd34b7ecbbba5
ibmvnic: Properly dispose of all skbs during a failover.

[ Upstream commit 1b18f09d31cfa7148df15a7d5c5e0e86f105f7d1 ]

During a reset, there may have been transmits in flight that are no
longer valid and cannot be fulfilled.  Resetting and clearing the
queues is insufficient; each skb also needs to be explicitly freed
so that upper levels are not left waiting for confirmation of a
transmit that will never happen.  If this happens frequently enough,
the apparent backlog will cause TCP to begin "congestion control"
unnecessarily, culminating in permanently decreased throughput.

Fixes: d7c0ef36bde03 ("ibmvnic: Free and re-allocate scrqs when tx/rx scrqs change")
Tested-by: Nick Child <nnac123@linux.ibm.com>
Reviewed-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: Rick Lindsley <ricklind@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/ibm/ibmvnic.c