]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
vsock/test: fix vsock_ioctl_int() check for unsupported ioctl
authorStefano Garzarella <sgarzare@redhat.com>
Tue, 15 Jul 2025 09:32:33 +0000 (11:32 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 16 Jul 2025 23:14:00 +0000 (16:14 -0700)
`vsock_do_ioctl` returns -ENOIOCTLCMD if an ioctl support is not
implemented, like for SIOCINQ before commit f7c722659275 ("vsock: Add
support for SIOCINQ ioctl"). In net/socket.c, -ENOIOCTLCMD is re-mapped
to -ENOTTY for the user space. So, our test suite, without that commit
applied, is failing in this way:

    34 - SOCK_STREAM ioctl(SIOCINQ) functionality...ioctl(21531): Inappropriate ioctl for device

Return false in vsock_ioctl_int() to skip the test in this case as well,
instead of failing.

Fixes: 53548d6bffac ("test/vsock: Add retry mechanism to ioctl wrapper")
Cc: niuxuewei.nxw@antgroup.com
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Xuewei Niu <niuxuewei.nxw@antgroup.com>
Link: https://patch.msgid.link/20250715093233.94108-1-sgarzare@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/vsock/util.c

index 1e65c5abd85b8bcf5886272de15437d7be13eb89..7b861a8e997a8b91e382cc3219acd2994fc58af6 100644 (file)
@@ -116,7 +116,7 @@ bool vsock_ioctl_int(int fd, unsigned long op, int expected)
        do {
                ret = ioctl(fd, op, &actual);
                if (ret < 0) {
-                       if (errno == EOPNOTSUPP)
+                       if (errno == EOPNOTSUPP || errno == ENOTTY)
                                break;
 
                        perror(name);