kselftest/arm64/mte: Check MTE_FAR feature is supported

To run the MTE_FAR test when cpu supports MTE_FAR feature,
check the MTE_FAR feature is supported in mte test.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20250618084513.1761345-7-yeoreum.yun@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
Yeoreum Yun 2025-06-18 09:45:09 +01:00 committed by Catalin Marinas
parent cfafa517c9
commit 2e3e356560
2 changed files with 5 additions and 0 deletions

View File

@ -26,6 +26,7 @@
#define INIT_BUFFER_SIZE 256
struct mte_fault_cxt cur_mte_cxt;
bool mtefar_support;
static unsigned int mte_cur_mode;
static unsigned int mte_cur_pstate_tco;
@ -325,12 +326,15 @@ int mte_switch_mode(int mte_option, unsigned long incl_mask)
int mte_default_setup(void)
{
unsigned long hwcaps2 = getauxval(AT_HWCAP2);
unsigned long hwcaps3 = getauxval(AT_HWCAP3);
unsigned long en = 0;
int ret;
if (!(hwcaps2 & HWCAP2_MTE))
ksft_exit_skip("MTE features unavailable\n");
mtefar_support = !!(hwcaps3 & HWCAP3_MTE_FAR);
/* Get current mte mode */
ret = prctl(PR_GET_TAGGED_ADDR_CTRL, en, 0, 0, 0);
if (ret < 0) {

View File

@ -37,6 +37,7 @@ struct mte_fault_cxt {
};
extern struct mte_fault_cxt cur_mte_cxt;
extern bool mtefar_support;
/* MTE utility functions */
void mte_default_handler(int signum, siginfo_t *si, void *uc);