diff options
author | Laurent Vivier <lvivier@redhat.com> | 2025-01-15 17:22:30 +0100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2025-01-15 23:05:31 +0100 |
commit | 1b95bd6fa1148f3609bebf7b2bcd6d47376e61a6 (patch) | |
tree | 43e954ce39bafb8f24c4893ecc60d56d1c09ef0c /virtio.c | |
parent | f04b483d1509b852951fe1421ef6f6740c9f9a08 (diff) | |
download | passt-1b95bd6fa1148f3609bebf7b2bcd6d47376e61a6.tar passt-1b95bd6fa1148f3609bebf7b2bcd6d47376e61a6.tar.gz passt-1b95bd6fa1148f3609bebf7b2bcd6d47376e61a6.tar.bz2 passt-1b95bd6fa1148f3609bebf7b2bcd6d47376e61a6.tar.lz passt-1b95bd6fa1148f3609bebf7b2bcd6d47376e61a6.tar.xz passt-1b95bd6fa1148f3609bebf7b2bcd6d47376e61a6.tar.zst passt-1b95bd6fa1148f3609bebf7b2bcd6d47376e61a6.zip |
vhost_user: fix multibuffer from linux
Under some conditions, linux can provide several buffers
in the same element (multiple entries in the iovec array).
I didn't identify what changed between the kernel guest that
provides one buffer and the one that provides several
(doesn't seem to be a kernel change or a configuration change).
Fix the following assert:
ASSERTION FAILED in virtqueue_map_desc (virtio.c:402): num_sg < max_num_sg
What I can see is the buffer can be splitted in two iovecs:
- vnet header
- packet data
This change manages this special case but the real fix will be to allow
tap_add_packet() to manage iovec array.
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'virtio.c')
0 files changed, 0 insertions, 0 deletions