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@xxxxxxxxxx; will@xxxxxxxxxx; Anshuman Khandual; Joey Gouly; Yury Khrustalev; maz@xxxxxxxxxx; oliver.upton@xxxxxxxxx; frederic@xxxxxxxxxx; akpm@xxxxxxxxxxxxxxxxxxxx; surenb@xxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-doc@xxxxxxxxxxxxxxx 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.