]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests: hw-net: auto-disable building the iouring C code
authorJakub Kicinski <kuba@kernel.org>
Fri, 21 Nov 2025 04:02:55 +0000 (20:02 -0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 25 Nov 2025 02:51:40 +0000 (18:51 -0800)
Looks like the liburing is not updated by distros very aggressively.
Presumably because a lot of packages depend on it. I just updated
to Fedora 43 and it's still on liburing 2.9. The test is 9mo old,
at this stage I think this warrants handling the build failure
more gracefully.

Detect if iouring is recent enough and if not print a warning
and exclude the C prog from build. The Python test will just
fail since the binary won't exist. But it removes the major
annoyance of having to update liburing from sources when
developing other tests.

Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20251121040259.3647749-2-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/drivers/net/hw/Makefile

index 1760238e9d4f6ba7c4e6b20846eaf4ffdb510431..949aeeeb357d6a61f946f5e50bd2e45b0cb6f93a 100644 (file)
@@ -1,7 +1,20 @@
 # SPDX-License-Identifier: GPL-2.0+ OR MIT
 
+# Check if io_uring supports zero-copy receive
+HAS_IOURING_ZCRX := $(shell \
+       echo -e '#include <liburing.h>\n' \
+            'void *func = (void *)io_uring_register_ifq;\n' \
+            'int main() {return 0;}' | \
+       $(CC) -luring -x c - -o /dev/null 2>&1 && echo y)
+
+ifeq ($(HAS_IOURING_ZCRX),y)
+COND_GEN_FILES += iou-zcrx
+else
+$(warning excluding iouring tests, liburing not installed or too old)
+endif
+
 TEST_GEN_FILES := \
-       iou-zcrx \
+       $(COND_GEN_FILES) \
        toeplitz \
 # end of TEST_GEN_FILES
 
@@ -58,4 +71,6 @@ include ../../../net/ynl.mk
 
 include ../../../net/bpf.mk
 
+ifeq ($(HAS_IOURING_ZCRX),y)
 $(OUTPUT)/iou-zcrx: LDLIBS += -luring
+endif