Commit cfafa517 authored by Yeoreum Yun's avatar Yeoreum Yun Committed by Catalin Marinas
Browse files

kselftest/arm64/mte: Register mte signal handler with SA_EXPOSE_TAGBITS



To test address tag[63:60] and memory tag[59:56] is preserved
when memory tag fault happen, Let mte_register_signal() to register
signal handler with SA_EXPOSE_TAGBITS.

Signed-off-by: default avatarYeoreum Yun <yeoreum.yun@arm.com>
Reviewed-by: default avatarMark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20250618084513.1761345-6-yeoreum.yun@arm.com


Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 49a9942f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -415,7 +415,7 @@ int main(int argc, char *argv[])
		return err;

	/* Register SIGSEGV handler */
	mte_register_signal(SIGSEGV, mte_default_handler);
	mte_register_signal(SIGSEGV, mte_default_handler, false);

	/* Set test plan */
	ksft_set_plan(20);
+2 −2
Original line number Diff line number Diff line
@@ -160,8 +160,8 @@ int main(int argc, char *argv[])
		return err;

	/* Register SIGSEGV handler */
	mte_register_signal(SIGSEGV, mte_default_handler);
	mte_register_signal(SIGBUS, mte_default_handler);
	mte_register_signal(SIGSEGV, mte_default_handler, false);
	mte_register_signal(SIGBUS, mte_default_handler, false);

	/* Set test plan */
	ksft_set_plan(12);
+2 −2
Original line number Diff line number Diff line
@@ -235,8 +235,8 @@ int main(int argc, char *argv[])
		return err;

	/* Register signal handlers */
	mte_register_signal(SIGBUS, mte_default_handler);
	mte_register_signal(SIGSEGV, mte_default_handler);
	mte_register_signal(SIGBUS, mte_default_handler, false);
	mte_register_signal(SIGSEGV, mte_default_handler, false);

	allocate_hugetlb();

+2 −2
Original line number Diff line number Diff line
@@ -141,8 +141,8 @@ int main(int argc, char *argv[])
		return KSFT_FAIL;
	}
	/* Register signal handlers */
	mte_register_signal(SIGBUS, mte_default_handler);
	mte_register_signal(SIGSEGV, mte_default_handler);
	mte_register_signal(SIGBUS, mte_default_handler, false);
	mte_register_signal(SIGSEGV, mte_default_handler, false);

	/* Set test plan */
	ksft_set_plan(4);
+2 −2
Original line number Diff line number Diff line
@@ -201,8 +201,8 @@ int main(int argc, char *argv[])
	sizes[item - 1] = page_size + 1;

	/* Register signal handlers */
	mte_register_signal(SIGBUS, mte_default_handler);
	mte_register_signal(SIGSEGV, mte_default_handler);
	mte_register_signal(SIGBUS, mte_default_handler, false);
	mte_register_signal(SIGSEGV, mte_default_handler, false);

	/* Set test plan */
	ksft_set_plan(22);
Loading