Merge tag 'sound-fix-3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
[firefly-linux-kernel-4.4.55.git] / arch / mips / kernel / process.c
index 0a1ec0f3beff68acb4071136a637aacb6a164816..636b0745d7c7e51ed4b0f1b1efeb4dbe6d8beb6a 100644 (file)
@@ -21,7 +21,6 @@
 #include <linux/mman.h>
 #include <linux/personality.h>
 #include <linux/sys.h>
-#include <linux/user.h>
 #include <linux/init.h>
 #include <linux/completion.h>
 #include <linux/kallsyms.h>
@@ -36,6 +35,7 @@
 #include <asm/pgtable.h>
 #include <asm/mipsregs.h>
 #include <asm/processor.h>
+#include <asm/reg.h>
 #include <asm/uaccess.h>
 #include <asm/io.h>
 #include <asm/elf.h>
@@ -66,6 +66,7 @@ void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp)
        clear_used_math();
        clear_fpu_owner();
        init_dsp();
+       clear_thread_flag(TIF_USEDMSA);
        clear_thread_flag(TIF_MSA_CTX_LIVE);
        disable_msa();
        regs->cp0_epc = pc;
@@ -141,6 +142,8 @@ int copy_thread(unsigned long clone_flags, unsigned long usp,
        childregs->cp0_status &= ~(ST0_CU2|ST0_CU1);
 
        clear_tsk_thread_flag(p, TIF_USEDFPU);
+       clear_tsk_thread_flag(p, TIF_USEDMSA);
+       clear_tsk_thread_flag(p, TIF_MSA_CTX_LIVE);
 
 #ifdef CONFIG_MIPS_MT_FPAFF
        clear_tsk_thread_flag(p, TIF_FPUBOUND);
@@ -152,61 +155,6 @@ int copy_thread(unsigned long clone_flags, unsigned long usp,
        return 0;
 }
 
-/* Fill in the fpu structure for a core dump.. */
-int dump_fpu(struct pt_regs *regs, elf_fpregset_t *r)
-{
-       int i;
-
-       for (i = 0; i < NUM_FPU_REGS; i++)
-               memcpy(&r[i], &current->thread.fpu.fpr[i], sizeof(*r));
-
-       memcpy(&r[NUM_FPU_REGS], &current->thread.fpu.fcr31,
-              sizeof(current->thread.fpu.fcr31));
-
-       return 1;
-}
-
-void elf_dump_regs(elf_greg_t *gp, struct pt_regs *regs)
-{
-       int i;
-
-       for (i = 0; i < EF_R0; i++)
-               gp[i] = 0;
-       gp[EF_R0] = 0;
-       for (i = 1; i <= 31; i++)
-               gp[EF_R0 + i] = regs->regs[i];
-       gp[EF_R26] = 0;
-       gp[EF_R27] = 0;
-       gp[EF_LO] = regs->lo;
-       gp[EF_HI] = regs->hi;
-       gp[EF_CP0_EPC] = regs->cp0_epc;
-       gp[EF_CP0_BADVADDR] = regs->cp0_badvaddr;
-       gp[EF_CP0_STATUS] = regs->cp0_status;
-       gp[EF_CP0_CAUSE] = regs->cp0_cause;
-#ifdef EF_UNUSED0
-       gp[EF_UNUSED0] = 0;
-#endif
-}
-
-int dump_task_regs(struct task_struct *tsk, elf_gregset_t *regs)
-{
-       elf_dump_regs(*regs, task_pt_regs(tsk));
-       return 1;
-}
-
-int dump_task_fpu(struct task_struct *t, elf_fpregset_t *fpr)
-{
-       int i;
-
-       for (i = 0; i < NUM_FPU_REGS; i++)
-               memcpy(&fpr[i], &t->thread.fpu.fpr[i], sizeof(*fpr));
-
-       memcpy(&fpr[NUM_FPU_REGS], &t->thread.fpu.fcr31,
-              sizeof(t->thread.fpu.fcr31));
-
-       return 1;
-}
-
 #ifdef CONFIG_CC_STACKPROTECTOR
 #include <linux/stackprotector.h>
 unsigned long __stack_chk_guard __read_mostly;