diff --git a/arch/arm64/src/common/arm64_schedulesigaction.c b/arch/arm64/src/common/arm64_schedulesigaction.c index 26b0217406f..36eba973814 100644 --- a/arch/arm64/src/common/arm64_schedulesigaction.c +++ b/arch/arm64/src/common/arm64_schedulesigaction.c @@ -66,6 +66,11 @@ static void arm64_init_signal_process(struct tcb_s *tcb, uint64_t *regs) tcb->xcp.regs[REG_SPSR] = SPSR_MODE_EL1H | DAIF_FIQ_BIT | DAIF_IRQ_BIT; #endif + tcb->xcp.regs[REG_SCTLR_EL1] = read_sysreg(sctlr_el1); +#ifdef CONFIG_ARM64_MTE + tcb->xcp.regs[REG_SCTLR_EL1] |= SCTLR_TCF1_BIT; +#endif + #ifdef CONFIG_ARCH_KERNEL_STACK tcb->xcp.regs[REG_SP_EL0] = regs[REG_SP_EL0]; #else