public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Christian Brauner <brauner@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org
Subject: [GIT PULL] pidfd updates
Date: Wed, 10 Nov 2021 15:52:23 +0100	[thread overview]
Message-ID: <20211110145222.1967514-1-brauner@kernel.org> (raw)

Hi Linus,

/* Summary */
Various places in the kernel have picked up pidfds. The two most recent
additions have probably been the ability to use pidfds in bpf maps and the
usage of pidfds in mm-based syscalls such as process_mrelease() and
process_madvise(). The same pattern to turn a pidfd into a struct task exists
in two places. One of those places used PIDTYPE_TGID while the other one used
PIDTYPE_PID even though it is clearly documented in all pidfd-helpers that
pidfds __currently__ only refer to thread-group leaders (subject to change in
the future if need be). This isn't a bug per se but has the potential to be one
if we allow pidfds to refer to individual threads. If that happens we want to
audit all codepaths that make use of them to ensure they can deal with pidfds
refering to individual threads. This pull request adds a simple helper to turn
a pidfd into a struct task making it easy to grep for such places. Plus, it
gets rid of code-duplication.

(This is coming a bit later than usual because of a few fixes I was working on.)

/* Testing */
All patches have been in linux-next since 5.15-rc5. No build failures or
warnings were observed. All old and new tests are passing.

/* Conflicts */
At the time of creating this PR no merge conflicts were reported from
linux-next. However, a trivial merge conflict exists with current mainline.

diff --cc mm/oom_kill.c
index 195b3661da3d,70d399d5817e..000000000000
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@@ -1149,8 -1150,7 +1149,7 @@@ SYSCALL_DEFINE2(process_mrelease, int,
        struct task_struct *task;
        struct task_struct *p;
        unsigned int f_flags;
 -      bool reap = true;
 +      bool reap = false;
-       struct pid *pid;
        long ret = 0;

        if (flags)
@@@ -1200,12 -1194,9 +1193,10 @@@
        mmap_read_unlock(mm);

  drop_mm:
 -      mmdrop(mm);
 +      if (mm)
 +              mmput(mm);
  put_task:
        put_task_struct(task);
- put_pid:
-       put_pid(pid);
        return ret;
  #else
        return -ENOSYS;

The following changes since commit 64570fbc14f8d7cb3fe3995f20e26bc25ce4b2cc:

  Linux 5.15-rc5 (2021-10-10 17:01:59 -0700)

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/brauner/linux tags/pidfd.v5.16

for you to fetch changes up to ee9955d61a0a770152f9c3af470bd1689f034c74:

  mm: use pidfd_get_task() (2021-10-14 13:29:22 +0200)

Please consider pulling these changes from the signed pidfd.v5.16 tag.

Thanks!
Christian

----------------------------------------------------------------
pidfd.v5.16

----------------------------------------------------------------
Christian Brauner (2):
      pid: add pidfd_get_task() helper
      mm: use pidfd_get_task()

 include/linux/pid.h |  1 +
 kernel/pid.c        | 36 ++++++++++++++++++++++++++++++++++++
 mm/madvise.c        | 15 +++------------
 mm/oom_kill.c       | 15 +++------------
 4 files changed, 43 insertions(+), 24 deletions(-)

             reply	other threads:[~2021-11-10 14:54 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-10 14:52 Christian Brauner [this message]
2021-11-11  0:25 ` [GIT PULL] pidfd updates pr-tracker-bot
  -- strict thread matches above, loose matches on Subject: below --
2023-04-21 13:41 Christian Brauner
2023-04-24 20:24 ` Linus Torvalds
2023-04-24 20:35   ` Linus Torvalds
2023-04-25 12:08     ` Christian Brauner
2023-04-25  6:04   ` Al Viro
2023-04-25 12:34     ` Christian Brauner
2023-04-25 13:54       ` Al Viro
2023-04-25 14:36         ` Christian Brauner
2023-04-25 15:48           ` Al Viro
2023-04-25 16:28       ` Linus Torvalds
2023-04-25 17:19         ` Al Viro
2023-04-28  8:40         ` David Laight
2023-04-28 18:26           ` Linus Torvalds
2023-04-27  1:07       ` Al Viro
2023-04-27  7:39         ` Al Viro
2023-04-27  8:33           ` Christian Brauner
2023-04-27  8:59             ` Al Viro
2023-04-27  9:40               ` Christian Brauner
2023-04-27 15:21           ` Linus Torvalds
2023-04-27 17:02             ` Al Viro
2023-05-02  7:11               ` Christian Brauner
2023-04-27  8:11         ` Christian Brauner
2023-04-24 21:45 ` pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211110145222.1967514-1-brauner@kernel.org \
    --to=brauner@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox