]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
vsock/test: fix seqpacket message bounds test
authorStefano Garzarella <sgarzare@redhat.com>
Wed, 21 Jan 2026 09:36:26 +0000 (10:36 +0100)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 22 Jan 2026 14:41:33 +0000 (15:41 +0100)
The test requires the sender (client) to send all messages before waking
up the receiver (server).
Since virtio-vsock had a bug and did not respect the size of the TX
buffer, this test worked, but now that we are going to fix the bug, the
test hangs because the sender would fill the TX buffer before waking up
the receiver.

Set the buffer size in the sender (client) as well, as we already do for
the receiver (server).

Fixes: 5c338112e48a ("test/vsock: rework message bounds test")
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Link: https://patch.msgid.link/20260121093628.9941-3-sgarzare@redhat.com
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
tools/testing/vsock/vsock_test.c

index 27e39354499a06cb3eef0baeebbcc9daffacd19d..668fbe9eb3cc588442eb496d5bc162c349c50fe5 100644 (file)
@@ -351,6 +351,7 @@ static void test_stream_msg_peek_server(const struct test_opts *opts)
 
 static void test_seqpacket_msg_bounds_client(const struct test_opts *opts)
 {
+       unsigned long long sock_buf_size;
        unsigned long curr_hash;
        size_t max_msg_size;
        int page_size;
@@ -363,6 +364,16 @@ static void test_seqpacket_msg_bounds_client(const struct test_opts *opts)
                exit(EXIT_FAILURE);
        }
 
+       sock_buf_size = SOCK_BUF_SIZE;
+
+       setsockopt_ull_check(fd, AF_VSOCK, SO_VM_SOCKETS_BUFFER_MAX_SIZE,
+                            sock_buf_size,
+                            "setsockopt(SO_VM_SOCKETS_BUFFER_MAX_SIZE)");
+
+       setsockopt_ull_check(fd, AF_VSOCK, SO_VM_SOCKETS_BUFFER_SIZE,
+                            sock_buf_size,
+                            "setsockopt(SO_VM_SOCKETS_BUFFER_SIZE)");
+
        /* Wait, until receiver sets buffer size. */
        control_expectln("SRVREADY");