Re: [LTP] [PATCH] ioctl_pidfd05: Check if PIDFD_INFO_EXIT is available

Cyril Hrubis
2025-09-18T13:30:42Z

Hi!
> > This test also needs this check as it might fail with
> > ioctl_pidfd05.c:45: TFAIL: ioctl(pidfd, PIDFD_GET_INFO, NULL) expected EINVAL: ENOTTY (25)
> > ioctl_pidfd05.c:46: TFAIL: ioctl(pidfd, PIDFD_GET_INFO_SHORT, info_invalid) expected EINVAL: ENOTTY (25)
> > when system does not have PIDFD_INFO_EXIT implementation.
>
> Reviewed-by: Petr Vorel <pvorel@suse.cz>
>
> Thanks for the fix!. As a quick fix this would work, because
> ioctl_pidfd_info_exit_supported() is using ioctl(fd, PIDFD_GET_INFO, ...).
>
> But because PIDFD_GET_INFO was added in 6.12:
> cdda1f26e74b ("pidfd: add ioctl to retrieve pid info") # v6.12-rc3
> and PIDFD_INFO_EXIT in v6.14:
> 7477d7dce48a ("pidfs: allow to retrieve exit information") # v6.14-rc1
> it'd make sense to create ioctl_pidfd_get_info_supported() which would
> be also used by ioctl_pidfd_info_exit_supported().
> Why? There is 6.12 LTSS kernel branch which will get TCONF instead of being
> tested.
>
> It could be done ioctl_pidfd_get_info_supported() could return int64_t mask
> (__u64 mask struct pidfd_info member if supported or -1 if ioctl() returned -1.
> ioctl_pidfd_info_exit_supported() would just evaluate that. Other option is just
> code duplicity.

Yes please, we need another check just for PIDFD_GET_INFO with empty
mask.

--
Cyril Hrubis
chrubis@suse.cz