From: Lorenzo Stoakes <ljs@kernel.org>
To: Hongfu Li <lihongfu@kylinos.cn>
Cc: akpm@linux-foundation.org, david@kernel.org, liam@infradead.org,
vbabka@kernel.org, rppt@kernel.org, surenb@google.com,
mhocko@suse.com, shuah@kernel.org, linux-mm@kvack.org,
linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] selftests/mm: add missing mmap() return checks in pkey tests
Date: Mon, 18 May 2026 11:45:25 +0100 [thread overview]
Message-ID: <agrrp5fRWWuMSoYB@lucifer> (raw)
In-Reply-To: <20260518082120.3890552-1-lihongfu@kylinos.cn>
Hmm you're sending this separete from the other MAP_FAILED checks, and not
referencing that in any way? (original patch at [0]).
Please just send this as a 2 patch series _with a cover letter_ and both patches
in-reply-to the cover letter.
Also make sure to propagate tags correctly.
[0]:https://lore.kernel.org/all/20260513095609.789935-1-lihongfu@kylinos.cn/
On Mon, May 18, 2026 at 04:21:20PM +0800, Hongfu Li wrote:
> Several mmap() calls lack error checks and would crash on failure.
> Add the missing checks. Also replace bare (void *)-1 with the
Well you're assert()'ing so you're causing a crash on failure anyway?
I'd just say that you are adding missing checks against the mmap() return value,
as well as improving readability and consistency by replacing (void *)-1 with
MAP_FAILED in instances where that was used rather than MAP_FAILED.
> standard MAP_FAILED macro in protection_keys.c for consistency.
>
> Signed-off-by: Hongfu Li <lihongfu@kylinos.cn>
Some comments below.
> ---
> tools/testing/selftests/mm/pkey_sighandler_tests.c | 2 ++
> tools/testing/selftests/mm/protection_keys.c | 9 +++++----
> 2 files changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/tools/testing/selftests/mm/pkey_sighandler_tests.c b/tools/testing/selftests/mm/pkey_sighandler_tests.c
> index 302fef54049c..4637809192f9 100644
> --- a/tools/testing/selftests/mm/pkey_sighandler_tests.c
> +++ b/tools/testing/selftests/mm/pkey_sighandler_tests.c
> @@ -317,6 +317,7 @@ static void test_sigsegv_handler_with_different_pkey_for_stack(void)
> /* Set up alternate signal stack that will use the default MPK */
> sigstack.ss_sp = mmap(0, STACK_SIZE, PROT_READ | PROT_WRITE,
> MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
> + assert(sigstack.ss_sp != MAP_FAILED);
Why not pkey_assert()?
> sigstack.ss_flags = 0;
> sigstack.ss_size = STACK_SIZE;
>
> @@ -490,6 +491,7 @@ static void test_pkru_sigreturn(void)
> /* Set up alternate signal stack that will use the default MPK */
> sigstack.ss_sp = mmap(0, STACK_SIZE, PROT_READ | PROT_WRITE,
> MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
> + assert(sigstack.ss_sp != MAP_FAILED);
Why not pkey_assert()?
> sigstack.ss_flags = 0;
> sigstack.ss_size = STACK_SIZE;
>
> diff --git a/tools/testing/selftests/mm/protection_keys.c b/tools/testing/selftests/mm/protection_keys.c
> index 2085982dba69..d53bdc540a74 100644
> --- a/tools/testing/selftests/mm/protection_keys.c
> +++ b/tools/testing/selftests/mm/protection_keys.c
> @@ -667,7 +667,7 @@ static void *malloc_pkey_with_mprotect(long size, int prot, u16 pkey)
> size, prot, pkey);
> pkey_assert(pkey < NR_PKEYS);
> ptr = mmap(NULL, size, prot, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
> - pkey_assert(ptr != (void *)-1);
> + pkey_assert(ptr != MAP_FAILED);
> ret = mprotect_pkey((void *)ptr, PAGE_SIZE, prot, pkey);
> pkey_assert(!ret);
> record_pkey_malloc(ptr, size, prot);
> @@ -690,7 +690,7 @@ static void *malloc_pkey_anon_huge(long size, int prot, u16 pkey)
> */
> size = ALIGN_UP(size, HPAGE_SIZE * 2);
> ptr = mmap(NULL, size, PROT_NONE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
> - pkey_assert(ptr != (void *)-1);
> + pkey_assert(ptr != MAP_FAILED);
> record_pkey_malloc(ptr, size, prot);
> mprotect_pkey(ptr, size, prot, pkey);
>
> @@ -770,7 +770,7 @@ static void *malloc_pkey_hugetlb(long size, int prot, u16 pkey)
> size = ALIGN_UP(size, HPAGE_SIZE * 2);
> pkey_assert(pkey < NR_PKEYS);
> ptr = mmap(NULL, size, PROT_NONE, flags, -1, 0);
> - pkey_assert(ptr != (void *)-1);
> + pkey_assert(ptr != MAP_FAILED);
> mprotect_pkey(ptr, size, prot, pkey);
>
> record_pkey_malloc(ptr, size, prot);
> @@ -1217,6 +1217,7 @@ static void arch_force_pkey_reg_init(void)
> * doing the XSAVE size enumeration dance.
> */
> buf = mmap(NULL, 1*MB, PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
> + pkey_assert(buf != MAP_FAILED);
>
> /* These __builtins require compiling with -mxsave */
>
> @@ -1775,7 +1776,7 @@ int main(void)
> printf("running PKEY tests for unsupported CPU/OS\n");
>
> ptr = mmap(NULL, size, PROT_NONE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
> - assert(ptr != (void *)-1);
> + assert(ptr != MAP_FAILED);
Probably best to convert to pkey_assert() at the same time?
> test_mprotect_pkey_on_unsupported_cpu(ptr, 1);
> exit(0);
> }
> --
> 2.25.1
>
Cheers, Lorenzo
next prev parent reply other threads:[~2026-05-18 10:45 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-18 8:21 [PATCH] selftests/mm: add missing mmap() return checks in pkey tests Hongfu Li
2026-05-18 10:45 ` Lorenzo Stoakes [this message]
2026-05-19 9:16 ` Hongfu Li
2026-05-19 9:57 ` Lorenzo Stoakes
2026-05-20 4:16 ` Hongfu Li
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=agrrp5fRWWuMSoYB@lucifer \
--to=ljs@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=david@kernel.org \
--cc=liam@infradead.org \
--cc=lihongfu@kylinos.cn \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.com \
--cc=rppt@kernel.org \
--cc=shuah@kernel.org \
--cc=surenb@google.com \
--cc=vbabka@kernel.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 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.