]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/mips/include/asm/stackframe.h
MIPS: Remove r2_emul_return from struct thread_info
[karo-tx-linux.git] / arch / mips / include / asm / stackframe.h
index eebf3954960644daf75dd5ae0d6e7eca1c50f34a..6c74a804fe983e76c6c390f5fd02b3911bc7602f 100644 (file)
                LONG_S  $25, PT_R25(sp)
                LONG_S  $28, PT_R28(sp)
                LONG_S  $31, PT_R31(sp)
+
+               /* Set thread_info if we're coming from user mode */
+               mfc0    k0, CP0_STATUS
+               sll     k0, 3           /* extract cu0 bit */
+               bltz    k0, 9f
+
                ori     $28, sp, _THREAD_MASK
                xori    $28, _THREAD_MASK
 #ifdef CONFIG_CPU_CAVIUM_OCTEON
                .set    mips64
                pref    0, 0($28)       /* Prefetch the current pointer */
 #endif
+9:
                .set    pop
                .endm
 
 
                .macro  RESTORE_SP_AND_RET
                LONG_L  sp, PT_R29(sp)
+#ifdef CONFIG_CPU_MIPSR6
+               eretnc
+#else
                .set    arch=r4000
                eret
                .set    mips0
+#endif
                .endm
 
 #endif