mirror of https://github.com/OpenIPC/firmware.git
44 lines
1.1 KiB
Diff
44 lines
1.1 KiB
Diff
diff -drupN a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c
|
|
--- a/arch/mips/kernel/signal.c 2017-10-21 18:09:07.000000000 +0300
|
|
+++ b/arch/mips/kernel/signal.c 2022-06-09 05:02:27.000000000 +0300
|
|
@@ -39,6 +39,7 @@
|
|
#include <asm/dsp.h>
|
|
#include <asm/inst.h>
|
|
#include <asm/msa.h>
|
|
+#include <mxu.h>
|
|
|
|
#include "signal-common.h"
|
|
|
|
@@ -440,6 +441,15 @@ int setup_sigcontext(struct pt_regs *reg
|
|
*/
|
|
err |= protected_save_fp_context(sc);
|
|
|
|
+#ifdef CONFIG_MACH_XBURST
|
|
+ if (cpu_has_mxu) {
|
|
+ unsigned int *regs;
|
|
+ regs = __get_mxu_regs(current);
|
|
+ for (i = 0; i < NUM_MXU_REGS; i++){
|
|
+ err |= __put_user(regs[i], &sc->sc_mxu[i]);
|
|
+ }
|
|
+ }
|
|
+#endif
|
|
return err;
|
|
}
|
|
|
|
@@ -513,6 +523,15 @@ int restore_sigcontext(struct pt_regs *r
|
|
for (i = 1; i < 32; i++)
|
|
err |= __get_user(regs->regs[i], &sc->sc_regs[i]);
|
|
|
|
+#ifdef CONFIG_MACH_XBURST
|
|
+ if (cpu_has_mxu) {
|
|
+ unsigned int regs[NUM_MXU_REGS];
|
|
+ for (i = 0; i < NUM_MXU_REGS; i++){
|
|
+ err |= __get_user(regs[i], &sc->sc_mxu[i]);
|
|
+ }
|
|
+ __let_mxu_regs(current,regs);
|
|
+ }
|
|
+#endif
|
|
return err ?: protected_restore_fp_context(sc);
|
|
}
|
|
|