mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 04:56:13 +02:00
kselftest: vm: fix mdwe's mmap_FIXED test case
[ Upstream commita27e2e2d46] I checked with the original author, the mmap_FIXED test case wasn't properly tested and fails. Currently, it maps two consecutive (non overlapping) pages and expects the second mapping to be denied by MDWE but these two pages have nothing to do with each other so MDWE is actually out of the picture here. What the test actually intended to do was to remap a virtual address using MAP_FIXED. However, this operation unmaps the existing mapping and creates a new one so the va is backed by a new page and MDWE is again out of the picture, all remappings should succeed. This patch keeps the test case to make it clear that this situation is expected to work: MDWE shouldn't block a MAP_FIXED replacement. Link: https://lkml.kernel.org/r/20230828150858.393570-3-revest@chromium.org Fixes:4cf1fe34fd("kselftest: vm: add tests for memory-deny-write-execute") Signed-off-by: Florent Revest <revest@chromium.org> Reviewed-by: David Hildenbrand <david@redhat.com> Reviewed-by: Kees Cook <keescook@chromium.org> Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Reviewed-by: Ryan Roberts <ryan.roberts@arm.com> Tested-by: Ryan Roberts <ryan.roberts@arm.com> Tested-by: Ayush Jain <ayush.jain3@amd.com> Cc: Alexey Izbyshev <izbyshev@ispras.ru> Cc: Anshuman Khandual <anshuman.khandual@arm.com> Cc: Greg Thelen <gthelen@google.com> Cc: Joey Gouly <joey.gouly@arm.com> Cc: KP Singh <kpsingh@kernel.org> Cc: Mark Brown <broonie@kernel.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Peter Xu <peterx@redhat.com> Cc: Szabolcs Nagy <Szabolcs.Nagy@arm.com> Cc: Topi Miettinen <toiwoton@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
11d05f01cf
commit
9c74367665
|
|
@ -168,13 +168,10 @@ TEST_F(mdwe, mmap_FIXED)
|
|||
self->p = mmap(NULL, self->size, PROT_READ, self->flags, 0, 0);
|
||||
ASSERT_NE(self->p, MAP_FAILED);
|
||||
|
||||
p = mmap(self->p + self->size, self->size, PROT_READ | PROT_EXEC,
|
||||
/* MAP_FIXED unmaps the existing page before mapping which is allowed */
|
||||
p = mmap(self->p, self->size, PROT_READ | PROT_EXEC,
|
||||
self->flags | MAP_FIXED, 0, 0);
|
||||
if (variant->enabled) {
|
||||
EXPECT_EQ(p, MAP_FAILED);
|
||||
} else {
|
||||
EXPECT_EQ(p, self->p);
|
||||
}
|
||||
EXPECT_EQ(p, self->p);
|
||||
}
|
||||
|
||||
TEST_F(mdwe, arm64_BTI)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user