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

Yeo Reum Yun YeoReum.Yun at arm.com
Wed Jun 11 05:23:26 PDT 2025


Hi Mark,

> >  #include <unistd.h>
>
> Not sure why we'd be including time.h here?

As you mention, This is my bad for wrong plcae .. Sorry

> > +bool mtefar_support;
>
> This is a non-static variable so won't have a defined default value...

Right, at the first write, I declare this with static.
But forgetting when changing more....

> > +
> >        if (mode == MTE_SYNC_ERR)
> >                cur_mte_cxt.trig_si_code = SEGV_MTESERR;
> >      else if (mode == MTE_ASYNC_ERR)
>
> Unrelated whitespace change.

Thanks.

> ...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.

Thanks for catching this.
I'll change.

--  
Sincerely,
Yeoreum Yun




________________________________________
From: Mark Brown
Sent: Wednesday, June 11, 2025 12:52
To: Yeo Reum Yun
Cc: Catalin Marinas; pcc at google.com; will at kernel.org; Anshuman Khandual; Joey Gouly; Yury Khrustalev; maz at kernel.org; oliver.upton at linux.dev; frederic at kernel.org; akpm at linux-foundation.org; surenb at google.com; linux-arm-kernel at lists.infradead.org; linux-kernel at vger.kernel.org; linux-doc at vger.kernel.org
Subject: Re: [PATCH v6 5/9] kselftest/arm64/mte: check MTE_FAR feature is supported


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.




More information about the linux-arm-kernel mailing list