linux_dsm_epyc7002/drivers/s390
Julian Wiedmann f7a7d3ede5 s390/qeth: improve completion of pending TX buffers
[ Upstream commit c20383ad1656b0f6354dd50e4acd894f9d94090d ]

The current design attaches a pending TX buffer to a custom
single-linked list, which is anchored at the buffer's slot on the
TX ring. The buffer is then checked for final completion whenever
this slot is processed during a subsequent TX NAPI poll cycle.

But if there's insufficient traffic on the ring, we might never make
enough progress to get back to this ring slot and discover the pending
buffer's final TX completion. In particular if this missing TX
completion blocks the application from sending further traffic.

So convert the custom single-linked list code to a per-queue list_head,
and scan this list on every TX NAPI cycle.

Fixes: 0da9581ddb ("qeth: exploit asynchronous delivery of storage blocks")
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-03-17 17:06:20 +01:00
..
block s390/dasd: fix list corruption of lcu list 2020-12-30 11:54:09 +01:00
char s390 updates for the 5.10 merge window 2020-10-16 12:36:38 -07:00
cio s390/cio: return -EFAULT if copy_to_user() fails 2021-03-17 17:06:19 +01:00
crypto s390/crypto: return -EFAULT if copy_to_user() fails 2021-03-17 17:06:19 +01:00
net s390/qeth: improve completion of pending TX buffers 2021-03-17 17:06:20 +01:00
scsi s390 updates for the 5.10 merge window 2020-10-16 12:36:38 -07:00
virtio virtio/s390: implement virtio-ccw revision 2 correctly 2021-03-04 11:38:42 +01:00
Makefile s390: remove pointless drivers-y in drivers/s390/Makefile 2019-09-16 13:21:51 +02:00