[PATCH] selftests/proc: make proc-maps-race work with READ_IMPLIES_EXEC

Karl Mehltretter posted 1 patch 4 days, 20 hours ago
tools/testing/selftests/proc/proc-maps-race.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] selftests/proc: make proc-maps-race work with READ_IMPLIES_EXEC
Posted by Karl Mehltretter 4 days, 20 hours ago
On READ_IMPLIES_EXEC systems, the readable test VMA already has
PROT_EXEC. The replacement mapping therefore does not create a split.

Use PROT_NONE instead; it cannot merge with the readable neighbors.

Tested on QEMU versatilepb with ARM926, and on
realview-eb-mpcore with ARM11MPCore.

Fixes: beb69e817246 ("selftests/proc: add /proc/pid/maps tearing from vma split test")
Assisted-by: Codex:GPT-5
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Liam R. Howlett <liam@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kselftest@vger.kernel.org
Cc: linux-fsdevel@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
 tools/testing/selftests/proc/proc-maps-race.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/proc/proc-maps-race.c b/tools/testing/selftests/proc/proc-maps-race.c
index 1026d8c400e1..415eccb70468 100644
--- a/tools/testing/selftests/proc/proc-maps-race.c
+++ b/tools/testing/selftests/proc/proc-maps-race.c
@@ -490,7 +490,8 @@ static bool query_addr_at(int maps_fd, void *addr,
 
 static inline bool split_vma(FIXTURE_DATA(proc_maps_race) *self)
 {
-	return mmap(self->mod_info->addr, self->page_size, self->mod_info->prot | PROT_EXEC,
+	/* PROT_NONE differs from both readable neighbors. */
+	return mmap(self->mod_info->addr, self->page_size, PROT_NONE,
 		    MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0) != MAP_FAILED;
 }
 
-- 
2.53.0