Re: [PATCH v6 5/9] kselftest/arm64/mte: check MTE_FAR feature is supported

From: Mark Brown
Date: Wed Jun 11 2025 - 07:53:46 EST


On Wed, Jun 11, 2025 at 10:41:03AM +0100, Yeoreum Yun wrote:
> --- a/tools/testing/selftests/arm64/mte/mte_common_util.c
> +++ b/tools/testing/selftests/arm64/mte/mte_common_util.c
> @@ -6,6 +6,7 @@
> #include <signal.h>
> #include <stdio.h>
> #include <stdlib.h>
> +#include <time.h>
> #include <unistd.h>

Not sure why we'd be including time.h here?

>
> #include <linux/auxvec.h>
> @@ -26,6 +27,7 @@
> #define INIT_BUFFER_SIZE 256
>
> struct mte_fault_cxt cur_mte_cxt;
> +bool mtefar_support;

This is a non-static variable so won't have a defined default value...

> @@ -273,6 +275,7 @@ void mte_initialize_current_context(int mode, uintptr_t ptr, ssize_t range)
> cur_mte_cxt.fault_valid = false;
> cur_mte_cxt.trig_addr = ptr;
> cur_mte_cxt.trig_range = range;
> +
> if (mode == MTE_SYNC_ERR)
> cur_mte_cxt.trig_si_code = SEGV_MTESERR;
> else if (mode == MTE_ASYNC_ERR)

Unrelated whitespace change.

> if (!(hwcaps2 & HWCAP2_MTE))
> ksft_exit_skip("MTE features unavailable\n");
>
> + if (hwcaps3 & HWCAP3_MTE_FAR)
> + mtefar_support = true;
> +

...this will only set mtefar_support if the hwcap is present, leaving it
undefined if not. If you just make this

mtefar_support = hwcap3 & HWCAP3_MTE_FAR

that should avoid the issue.

Attachment: signature.asc
Description: PGP signature