diff options
Diffstat (limited to 'arch/mips/kernel/process.c')
| -rw-r--r-- | arch/mips/kernel/process.c | 19 | 
1 files changed, 10 insertions, 9 deletions
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c index b16facd9ea8e..22fc19bbe87f 100644 --- a/arch/mips/kernel/process.c +++ b/arch/mips/kernel/process.c  | |||
| @@ -55,7 +55,7 @@ void __noreturn cpu_idle(void) | |||
| 55 | while (1) { | 55 | while (1) { | 
| 56 | tick_nohz_stop_sched_tick(1); | 56 | tick_nohz_stop_sched_tick(1); | 
| 57 | while (!need_resched()) { | 57 | while (!need_resched()) { | 
| 58 | #ifdef CONFIG_SMTC_IDLE_HOOK_DEBUG | 58 | #ifdef CONFIG_MIPS_MT_SMTC | 
| 59 | extern void smtc_idle_loop_hook(void); | 59 | extern void smtc_idle_loop_hook(void); | 
| 60 | 60 | ||
| 61 | smtc_idle_loop_hook(); | 61 | smtc_idle_loop_hook(); | 
| @@ -145,17 +145,18 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp, | |||
| 145 | */ | 145 | */ | 
| 146 | p->thread.cp0_status = read_c0_status() & ~(ST0_CU2|ST0_CU1); | 146 | p->thread.cp0_status = read_c0_status() & ~(ST0_CU2|ST0_CU1); | 
| 147 | childregs->cp0_status &= ~(ST0_CU2|ST0_CU1); | 147 | childregs->cp0_status &= ~(ST0_CU2|ST0_CU1); | 
| 148 | clear_tsk_thread_flag(p, TIF_USEDFPU); | ||
| 149 | 148 | ||
| 150 | #ifdef CONFIG_MIPS_MT_FPAFF | 149 | #ifdef CONFIG_MIPS_MT_SMTC | 
| 151 | /* | 150 | /* | 
| 152 | * FPU affinity support is cleaner if we track the | 151 | * SMTC restores TCStatus after Status, and the CU bits | 
| 153 | * user-visible CPU affinity from the very beginning. | 152 | * are aliased there. | 
| 154 | * The generic cpus_allowed mask will already have | ||
| 155 | * been copied from the parent before copy_thread | ||
| 156 | * is invoked. | ||
| 157 | */ | 153 | */ | 
| 158 | p->thread.user_cpus_allowed = p->cpus_allowed; | 154 | childregs->cp0_tcstatus &= ~(ST0_CU2|ST0_CU1); | 
| 155 | #endif | ||
| 156 | clear_tsk_thread_flag(p, TIF_USEDFPU); | ||
| 157 | |||
| 158 | #ifdef CONFIG_MIPS_MT_FPAFF | ||
| 159 | clear_tsk_thread_flag(p, TIF_FPUBOUND); | ||
| 159 | #endif /* CONFIG_MIPS_MT_FPAFF */ | 160 | #endif /* CONFIG_MIPS_MT_FPAFF */ | 
| 160 | 161 | ||
| 161 | if (clone_flags & CLONE_SETTLS) | 162 | if (clone_flags & CLONE_SETTLS) | 
