From: John Hubbard <jhubbard@nvidia.com>
To: Souptick Joarder <jrdr.linux@gmail.com>, <takedakn@nttdata.co.jp>,
<penguin-kernel@I-love.SAKURA.ne.jp>, <jmorris@namei.org>,
<serge@hallyn.com>
Cc: <linux-security-module@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, Jan Kara <jack@suse.cz>,
Matthew Wilcox <willy@infradead.org>
Subject: Re: [PATCH 1/2] tomoyo: Convert get_user_pages*() to pin_user_pages*()
Date: Sat, 7 Nov 2020 01:04:50 -0800 [thread overview]
Message-ID: <e5401549-8c31-2c6d-58dd-864232de17af@nvidia.com> (raw)
In-Reply-To: <1604737451-19082-1-git-send-email-jrdr.linux@gmail.com>
On 11/7/20 12:24 AM, Souptick Joarder wrote:
> In 2019, we introduced pin_user_pages*() and now we are converting
> get_user_pages*() to the new API as appropriate. [1] & [2] could
> be referred for more information. This is case 5 as per document [1].
It turns out that Case 5 can be implemented via a better pattern, as long
as we're just dealing with a page at a time, briefly:
lock_page()
write to page's data
unlock_page()
...which neatly synchronizes with writeback and other fs activities.
I was going to track down the Case 5's and do that [1].
+CC Jan and Matthew, to keep us on the straight and narrow, just in case
I'm misunderstanding something.
[1] https://lore.kernel.org/r/e78fb7af-627b-ce80-275e-51f97f1f3168@nvidia.com
thanks,
--
John Hubbard
NVIDIA
>
> [1] Documentation/core-api/pin_user_pages.rst
>
> [2] "Explicit pinning of user-space pages":
> https://lwn.net/Articles/807108/
>
> Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
> Cc: John Hubbard <jhubbard@nvidia.com>
> ---
> security/tomoyo/domain.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/security/tomoyo/domain.c b/security/tomoyo/domain.c
> index dc4ecc0..bd748be 100644
> --- a/security/tomoyo/domain.c
> +++ b/security/tomoyo/domain.c
> @@ -914,7 +914,7 @@ bool tomoyo_dump_page(struct linux_binprm *bprm, unsigned long pos,
> * (represented by bprm). 'current' is the process doing
> * the execve().
> */
> - if (get_user_pages_remote(bprm->mm, pos, 1,
> + if (pin_user_pages_remote(bprm->mm, pos, 1,
> FOLL_FORCE, &page, NULL, NULL) <= 0)
> return false;
> #else
> @@ -936,7 +936,7 @@ bool tomoyo_dump_page(struct linux_binprm *bprm, unsigned long pos,
> }
> /* Same with put_arg_page(page) in fs/exec.c */
> #ifdef CONFIG_MMU
> - put_page(page);
> + unpin_user_page(page);
> #endif
> return true;
> }
>
next prev parent reply other threads:[~2020-11-07 9:04 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-07 8:24 Souptick Joarder
2020-11-07 8:24 ` [PATCH 2/2] tomoyo: Fixed typo in documentation Souptick Joarder
2020-11-07 8:57 ` John Hubbard
2020-11-09 3:41 ` Souptick Joarder
2020-11-09 4:17 ` John Hubbard
2020-11-07 9:04 ` John Hubbard [this message]
2020-11-07 19:17 ` [PATCH 1/2] tomoyo: Convert get_user_pages*() to pin_user_pages*() John Hubbard
2020-11-08 1:13 ` Tetsuo Handa
2020-11-08 2:17 ` John Hubbard
2020-11-08 4:12 ` Tetsuo Handa
2020-11-08 5:00 ` John Hubbard
2020-11-09 3:38 ` Souptick Joarder
2020-11-09 3:36 ` Souptick Joarder
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=e5401549-8c31-2c6d-58dd-864232de17af@nvidia.com \
--to=jhubbard@nvidia.com \
--cc=jack@suse.cz \
--cc=jmorris@namei.org \
--cc=jrdr.linux@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=penguin-kernel@I-love.SAKURA.ne.jp \
--cc=serge@hallyn.com \
--cc=takedakn@nttdata.co.jp \
--cc=willy@infradead.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
all inboxes | Powered by JetHome®