All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTP] [PATCH v2] Correctly check if PIDFD_INFO_EXIT is available
@ 2025-07-29 16:39 Andrea Cervesato
  2025-07-30  9:35 ` Cyril Hrubis
  0 siblings, 1 reply; 4+ messages in thread
From: Andrea Cervesato @ 2025-07-29 16:39 UTC (permalink / raw)
  To: ltp

From: Andrea Cervesato <andrea.cervesato@suse.com>

When systems are not having the PIDFD_INFO_EXIT implementation,
ioctl_pidfd testing suite might fail with:

	ioctl_pidfd.h:32: TBROK: ioctl(...) failed: ENOTTY (25)

Fix the ioctl_pidfd_info_exit_supported() behavior, considering ENOTTY
error like a sign for not having PIDFD_INFO_EXIT implemented in the
system.

Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
---
Changes in v2:
- close pidfd when PIDFD_INFO_EXIT is supported
- Link to v1: https://lore.kernel.org/r/20250729-ioctl_pidfd_supported-v1-1-985626a0c46b@suse.com
---
 testcases/kernel/syscalls/ioctl/ioctl_pidfd.h | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/testcases/kernel/syscalls/ioctl/ioctl_pidfd.h b/testcases/kernel/syscalls/ioctl/ioctl_pidfd.h
index 8249ac753cf7fb8a3b749d55c7f0c3b30482c114..72ed3c8ae21bfa462ac76aaa865f5c71ce921e9a 100644
--- a/testcases/kernel/syscalls/ioctl/ioctl_pidfd.h
+++ b/testcases/kernel/syscalls/ioctl/ioctl_pidfd.h
@@ -11,9 +11,10 @@
 
 static inline int ioctl_pidfd_info_exit_supported(void)
 {
-	int ret = 0;
+	int ret;
 	pid_t pid;
 	int pidfd;
+	int supported = 0;
 	struct pidfd_info info;
 
 	if (tst_kvercmp(6, 15, 0) >= 0)
@@ -29,13 +30,18 @@ static inline int ioctl_pidfd_info_exit_supported(void)
 	pidfd = SAFE_PIDFD_OPEN(pid, 0);
 	SAFE_WAITPID(pid, NULL, 0);
 
-	SAFE_IOCTL(pidfd, PIDFD_GET_INFO, &info);
-	SAFE_CLOSE(pidfd);
+	ret = ioctl(pidfd, PIDFD_GET_INFO, &info);
+	if (ret == -1) {
+		if (errno != ENOTTY)
+			tst_brk(TBROK | TERRNO, "ioctl error");
+	} else {
+		if (info.mask & PIDFD_INFO_EXIT)
+			supported = 1;
+	}
 
-	if (info.mask & PIDFD_INFO_EXIT)
-		ret = 1;
+	SAFE_CLOSE(pidfd);
 
-	return ret;
+	return supported;
 }
 
 #endif

---
base-commit: 91e6272febf95e19a8300695dfc2089569adf9d8
change-id: 20250729-ioctl_pidfd_supported-437d25a4c382

Best regards,
-- 
Andrea Cervesato <andrea.cervesato@suse.com>


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-07-30 12:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-29 16:39 [LTP] [PATCH v2] Correctly check if PIDFD_INFO_EXIT is available Andrea Cervesato
2025-07-30  9:35 ` Cyril Hrubis
2025-07-30 12:04   ` Andrea Cervesato via ltp
2025-07-30 12:31     ` Andrea Cervesato via ltp

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.