diff -drupN a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c --- a/arch/mips/kernel/process.c 2017-10-21 18:09:07.000000000 +0300 +++ b/arch/mips/kernel/process.c 2022-06-09 05:02:27.000000000 +0300 @@ -45,6 +45,8 @@ #include #include #include +#include +#include #ifdef CONFIG_HOTPLUG_CPU void arch_cpu_idle_dead(void) @@ -63,12 +65,13 @@ void start_thread(struct pt_regs * regs, unsigned long status; /* New thread loses kernel privileges. */ - status = regs->cp0_status & ~(ST0_CU0|ST0_CU1|ST0_FR|KU_MASK); + status = regs->cp0_status & ~(ST0_CU0|ST0_CU1|ST0_CU2|ST0_FR|KU_MASK); status |= KU_USER; regs->cp0_status = status; clear_used_math(); clear_fpu_owner(); init_dsp(); + init_mxu(); clear_thread_flag(TIF_USEDMSA); clear_thread_flag(TIF_MSA_CTX_LIVE); disable_msa(); @@ -102,6 +105,8 @@ int arch_dup_task_struct(struct task_str save_dsp(current); + //save_mxu(current); + preempt_enable(); *dst = *src;