Skip to content

Commit

Permalink
kselftest/arm64: mte: Skip the hugetlb tests if MTE not supported on …
Browse files Browse the repository at this point in the history
…such mappings

While the kselftest was added at the same time with the kernel support
for MTE on hugetlb mappings, the tests may be run on older kernels. Skip
the tests if PROT_MTE is not supported on MAP_HUGETLB mappings.

Fixes: 27879e8 ("selftests: arm64: add hugetlb mte tests")
Cc: Yang Shi <yang@os.amperecomputing.com>
Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Reviewed-by: Dev Jain <dev.jain@arm.com>
Reviewed-by: Yang Shi <yang@os.amperecomputing.com>
Link: https://lore.kernel.org/r/20250221093331.2184245-3-catalin.marinas@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
  • Loading branch information
Catalin Marinas committed Mar 5, 2025
1 parent 7ae9510 commit 306219d
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions tools/testing/selftests/arm64/mte/check_hugetlb_options.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,8 @@ static int check_child_hugetlb_memory_mapping(int mem_type, int mode, int mappin
int main(int argc, char *argv[])
{
int err;
void *map_ptr;
unsigned long map_size;

err = mte_default_setup();
if (err)
Expand All @@ -243,6 +245,15 @@ int main(int argc, char *argv[])
return KSFT_FAIL;
}

/* Check if MTE supports hugetlb mappings */
map_size = default_huge_page_size();
map_ptr = mmap(NULL, map_size, PROT_READ | PROT_MTE,
MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, -1, 0);
if (map_ptr == MAP_FAILED)
ksft_exit_skip("PROT_MTE not supported with MAP_HUGETLB mappings\n");
else
munmap(map_ptr, map_size);

/* Set test plan */
ksft_set_plan(12);

Expand Down

0 comments on commit 306219d

Please sign in to comment.