From 080c0cd1edbefba74ac2f6f93e4001e4ac14c7a8 Mon Sep 17 00:00:00 2001
From: Li Wang
Date: Wed, 15 Apr 2026 11:22:32 +0800
Subject: [PATCH] ltp: fix epoll_ctl04 failed
backport from ltp upstream commit:
https://github.com/linux-test-project/ltp/commit/e84f0689cf7a8a77478a0e70aa62560f66c3bceb
the related kernel patch was already merged into yocto linux:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f2e467a48287c868818085aa35389a224d226732
(From OE-Core rev: 02ee34a255573789d1baf7ec080bf30e6e34b2ba)
Signed-off-by: Li Wang
Signed-off-by: Yoann Congal
Signed-off-by: Paul Barker
---
...l_ctl04-add-ELOOP-to-expected-errnos.patch | 49 +++++++++++++++++++
meta/recipes-extended/ltp/ltp_20240129.bb | 1 +
2 files changed, 50 insertions(+)
create mode 100644 meta/recipes-extended/ltp/ltp/0001-syscalls-epoll_ctl04-add-ELOOP-to-expected-errnos.patch
diff --git a/meta/recipes-extended/ltp/ltp/0001-syscalls-epoll_ctl04-add-ELOOP-to-expected-errnos.patch b/meta/recipes-extended/ltp/ltp/0001-syscalls-epoll_ctl04-add-ELOOP-to-expected-errnos.patch
new file mode 100644
index 0000000000..203836a5f6
--- /dev/null
+++ b/meta/recipes-extended/ltp/ltp/0001-syscalls-epoll_ctl04-add-ELOOP-to-expected-errnos.patch
@@ -0,0 +1,49 @@
+From e84f0689cf7a8a77478a0e70aa62560f66c3bceb Mon Sep 17 00:00:00 2001
+From: Jan Stancek
+Date: Tue, 5 Aug 2025 11:27:23 +0200
+Subject: [PATCH] syscalls/epoll_ctl04: add ELOOP to expected errnos
+
+Kernel commit f2e467a48287 ("eventpoll: Fix semi-unbounded recursion")
+added an extra checks for determining the maximum depth of an upwards walk,
+which starting with 6.17-rc kernels now hits ELOOP before EINVAL.
+
+Add ELOOP to list of expected errnos.
+
+Upstream-Status: Backport from
+[https://github.com/linux-test-project/ltp/commit/e84f0689]
+
+Link: https://lore.kernel.org/ltp/39ee7abdee12e22074b40d46775d69d37725b932.1754386027.git.jstancek@redhat.com/
+Reviewed-by: Andrea Cervesato
+Reviewed-by: Petr Vorel
+Reviewed-by: Avinesh Kumar
+Tested-by: Avinesh Kumar
+Signed-off-by: Jan Stancek
+[ modify TST_EXP_FAIL2_ARR function parameters ]
+Signed-off-by: Li Wang
+---
+ testcases/kernel/syscalls/epoll_ctl/epoll_ctl04.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/testcases/kernel/syscalls/epoll_ctl/epoll_ctl04.c b/testcases/kernel/syscalls/epoll_ctl/epoll_ctl04.c
+index 955959b6b26..feb49623b15 100644
+--- a/testcases/kernel/syscalls/epoll_ctl/epoll_ctl04.c
++++ b/testcases/kernel/syscalls/epoll_ctl/epoll_ctl04.c
+@@ -51,13 +51,16 @@ static void cleanup(void)
+
+ static void verify_epoll_ctl(void)
+ {
++ const int exp_errnos[] = {EINVAL, ELOOP};
++
+ new_epfd = epoll_create(1);
+ if (new_epfd == -1)
+ tst_brk(TBROK | TERRNO, "fail to create epoll instance");
+
+ events.data.fd = epfd;
+- TST_EXP_FAIL(epoll_ctl(new_epfd, EPOLL_CTL_ADD, epfd, &events), EINVAL,
+- "epoll_ctl(..., EPOLL_CTL_ADD, ...) with number of nesting is 5");
++ TST_EXP_FAIL2_ARR(epoll_ctl(new_epfd, EPOLL_CTL_ADD, epfd, &events),
++ exp_errnos,
++ "epoll_ctl(..., EPOLL_CTL_ADD, ...) with number of nesting is 5");
+ SAFE_CLOSE(new_epfd);
+ }
+
diff --git a/meta/recipes-extended/ltp/ltp_20240129.bb b/meta/recipes-extended/ltp/ltp_20240129.bb
index 18c6439283..ec31c98544 100644
--- a/meta/recipes-extended/ltp/ltp_20240129.bb
+++ b/meta/recipes-extended/ltp/ltp_20240129.bb
@@ -31,6 +31,7 @@ SRC_URI = "git://github.com/linux-test-project/ltp.git;branch=master;protocol=ht
file://0001-scenario_groups-default-remove-connectors.patch \
file://0001-sched_stress-Use-time_t-instead-of-long-for-type.patch \
file://0001-cve-2015-3290-Disable-AVX-for-x86_64.patch \
+ file://0001-syscalls-epoll_ctl04-add-ELOOP-to-expected-errnos.patch \
"
S = "${WORKDIR}/git"