[GIT PULL] fixes for v5.2-rc7

From: Christian Brauner
Date: Wed Jun 26 2019 - 10:08:35 EST

Hi Linus,

This pull request removes the validation of the pidfd return argument if
CLONE_PIDFD is specified:

The following changes since commit 4b972a01a7da614b4796475f933094751a295a2f:

Linux 5.2-rc6 (2019-06-22 16:01:36 -0700)

are available in the Git repository at:

git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/brauner/linux tags/for-linus-20190626

for you to fetch changes up to bee19cd8f241ab3cd1bf79e03884e5371f9ef514:

samples: make pidfd-metadata fail gracefully on older kernels (2019-06-24 15:55:50 +0200)

Userspace tools and libraries such as strace or glibc need a cheap and
reliable way to tell whether CLONE_PIDFD is supported.
The easiest way is to pass an invalid fd value in the return argument,
perform the syscall and verify the value in the return argument has been
changed to a valid fd.

However, if CLONE_PIDFD is specified we currently check if pidfd == 0 and
return EINVAL if not.

The check for pidfd == 0 was originally added to enable us to abuse the
return argument for passing additional flags along with CLONE_PIDFD in the

However, extending legacy clone this way would be a terrible idea and with
clone3 on the horizon and the ability to reuse CLONE_DETACHED with
CLONE_PIDFD there's no real need for this clutch. So remove the pidfd == 0
check and help userspace out.

Please consider pulling these changes from the signed for-linus-20190626 tag.



Dmitry V. Levin (2):
fork: don't check parent_tidptr with CLONE_PIDFD
samples: make pidfd-metadata fail gracefully on older kernels

kernel/fork.c | 12 ------------
samples/pidfd/pidfd-metadata.c | 8 ++++++--
2 files changed, 6 insertions(+), 14 deletions(-)