linux-stable/drivers/vhost
Andrey Smetanin 7949f83f7e vhost_net: revert upend_idx only on retriable error
[ Upstream commit 1f5d2e3bab ]

Fix possible virtqueue used buffers leak and corresponding stuck
in case of temporary -EIO from sendmsg() which is produced by
tun driver while backend device is not up.

In case of no-retriable error and zcopy do not revert upend_idx
to pass packet data (that is update used_idx in corresponding
vhost_zerocopy_signal_used()) as if packet data has been
transferred successfully.

v2: set vq->heads[ubuf->desc].len equal to VHOST_DMA_DONE_LEN
in case of fake successful transmit.

Signed-off-by: Andrey Smetanin <asmetanin@yandex-team.ru>
Message-Id: <20230424204411.24888-1-asmetanin@yandex-team.ru>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Andrey Smetanin <asmetanin@yandex-team.ru>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-06-28 10:29:53 +02:00
..
iotlb.c
Kconfig
Makefile
net.c vhost_net: revert upend_idx only on retriable error 2023-06-28 10:29:53 +02:00
scsi.c
test.c
test.h
vdpa.c vhost_vdpa: support PACKED when setting-getting vring_base 2023-06-14 11:13:09 +02:00
vhost.c vhost: support PACKED when setting-getting vring_base 2023-06-14 11:13:09 +02:00
vhost.h vhost: support PACKED when setting-getting vring_base 2023-06-14 11:13:09 +02:00
vringh.c vringh: fix range used in iotlb_translate() 2023-01-12 11:59:11 +01:00
vsock.c