Upgrade to 4.4.50-rt62
[kvmfornfv.git] / kernel / arch / mips / kernel / signal.c
index bf792e2..9e35b6b 100644 (file)
@@ -195,6 +195,9 @@ static int restore_msa_extcontext(void __user *buf, unsigned int size)
        unsigned int csr;
        int i, err;
 
+       if (!config_enabled(CONFIG_CPU_HAS_MSA))
+               return SIGSYS;
+
        if (size != sizeof(*msa))
                return -EINVAL;
 
@@ -398,8 +401,8 @@ int protected_restore_fp_context(void __user *sc)
        }
 
 fp_done:
-       if (used & USED_EXTCONTEXT)
-               err |= restore_extcontext(sc_to_extcontext(sc));
+       if (!err && (used & USED_EXTCONTEXT))
+               err = restore_extcontext(sc_to_extcontext(sc));
 
        return err ?: sig;
 }
@@ -767,15 +770,7 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
        sigset_t *oldset = sigmask_to_save();
        int ret;
        struct mips_abi *abi = current->thread.abi;
-#ifdef CONFIG_CPU_MICROMIPS
-       void *vdso;
-       unsigned long tmp = (unsigned long)current->mm->context.vdso;
-
-       set_isa16_mode(tmp);
-       vdso = (void *)tmp;
-#else
        void *vdso = current->mm->context.vdso;
-#endif
 
        if (regs->regs[0]) {
                switch(regs->regs[2]) {