aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel/process.c')
-rw-r--r--arch/mips/kernel/process.c41
1 files changed, 3 insertions, 38 deletions
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
index ec8209f3a0c6..a669089e4672 100644
--- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c
@@ -26,7 +26,6 @@
26#include <linux/completion.h> 26#include <linux/completion.h>
27#include <linux/kallsyms.h> 27#include <linux/kallsyms.h>
28 28
29#include <asm/abi.h>
30#include <asm/bootinfo.h> 29#include <asm/bootinfo.h>
31#include <asm/cpu.h> 30#include <asm/cpu.h>
32#include <asm/dsp.h> 31#include <asm/dsp.h>
@@ -41,10 +40,6 @@
41#include <asm/isadep.h> 40#include <asm/isadep.h>
42#include <asm/inst.h> 41#include <asm/inst.h>
43#include <asm/stacktrace.h> 42#include <asm/stacktrace.h>
44#ifdef CONFIG_MIPS_MT_SMTC
45#include <asm/mipsmtregs.h>
46extern void smtc_idle_loop_hook(void);
47#endif /* CONFIG_MIPS_MT_SMTC */
48 43
49/* 44/*
50 * The idle thread. There's no useful work to be done, so just try to conserve 45 * The idle thread. There's no useful work to be done, so just try to conserve
@@ -57,6 +52,8 @@ ATTRIB_NORET void cpu_idle(void)
57 while (1) { 52 while (1) {
58 while (!need_resched()) { 53 while (!need_resched()) {
59#ifdef CONFIG_MIPS_MT_SMTC 54#ifdef CONFIG_MIPS_MT_SMTC
55 extern void smtc_idle_loop_hook(void);
56
60 smtc_idle_loop_hook(); 57 smtc_idle_loop_hook();
61#endif /* CONFIG_MIPS_MT_SMTC */ 58#endif /* CONFIG_MIPS_MT_SMTC */
62 if (cpu_wait) 59 if (cpu_wait)
@@ -68,38 +65,6 @@ ATTRIB_NORET void cpu_idle(void)
68 } 65 }
69} 66}
70 67
71/*
72 * Native o32 and N64 ABI without DSP ASE
73 */
74struct mips_abi mips_abi = {
75 .do_signal = do_signal,
76#ifdef CONFIG_TRAD_SIGNALS
77 .setup_frame = setup_frame,
78#endif
79 .setup_rt_frame = setup_rt_frame
80};
81
82#ifdef CONFIG_MIPS32_O32
83/*
84 * o32 compatibility on 64-bit kernels, without DSP ASE
85 */
86struct mips_abi mips_abi_32 = {
87 .do_signal = do_signal32,
88 .setup_frame = setup_frame_32,
89 .setup_rt_frame = setup_rt_frame_32
90};
91#endif /* CONFIG_MIPS32_O32 */
92
93#ifdef CONFIG_MIPS32_N32
94/*
95 * N32 on 64-bit kernels, without DSP ASE
96 */
97struct mips_abi mips_abi_n32 = {
98 .do_signal = do_signal,
99 .setup_rt_frame = setup_rt_frame_n32
100};
101#endif /* CONFIG_MIPS32_N32 */
102
103asmlinkage void ret_from_fork(void); 68asmlinkage void ret_from_fork(void);
104 69
105void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp) 70void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp)
@@ -248,7 +213,7 @@ int dump_task_fpu (struct task_struct *t, elf_fpregset_t *fpr)
248/* 213/*
249 * Create a kernel thread 214 * Create a kernel thread
250 */ 215 */
251ATTRIB_NORET void kernel_thread_helper(void *arg, int (*fn)(void *)) 216static ATTRIB_NORET void kernel_thread_helper(void *arg, int (*fn)(void *))
252{ 217{
253 do_exit(fn(arg)); 218 do_exit(fn(arg));
254} 219}