aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/process.c
diff options
context:
space:
mode:
authorDavid Woodhouse <David.Woodhouse@intel.com>2008-10-13 12:13:56 -0400
committerDavid Woodhouse <David.Woodhouse@intel.com>2008-10-13 12:13:56 -0400
commite758936e02700ff88a0b08b722a3847b95283ef2 (patch)
tree50c919bef1b459a778b85159d5929de95b6c4a01 /arch/mips/kernel/process.c
parent239cfbde1f5843c4a24199f117d5f67f637d72d5 (diff)
parent4480f15b3306f43bbb0310d461142b4e897ca45b (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts: include/asm-x86/statfs.h
Diffstat (limited to 'arch/mips/kernel/process.c')
-rw-r--r--arch/mips/kernel/process.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
index 17edc69cf5c1..ca2e4026ad20 100644
--- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c
@@ -54,7 +54,7 @@ void __noreturn cpu_idle(void)
54 while (1) { 54 while (1) {
55 tick_nohz_stop_sched_tick(1); 55 tick_nohz_stop_sched_tick(1);
56 while (!need_resched()) { 56 while (!need_resched()) {
57#ifdef CONFIG_SMTC_IDLE_HOOK_DEBUG 57#ifdef CONFIG_MIPS_MT_SMTC
58 extern void smtc_idle_loop_hook(void); 58 extern void smtc_idle_loop_hook(void);
59 59
60 smtc_idle_loop_hook(); 60 smtc_idle_loop_hook();
@@ -144,17 +144,18 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
144 */ 144 */
145 p->thread.cp0_status = read_c0_status() & ~(ST0_CU2|ST0_CU1); 145 p->thread.cp0_status = read_c0_status() & ~(ST0_CU2|ST0_CU1);
146 childregs->cp0_status &= ~(ST0_CU2|ST0_CU1); 146 childregs->cp0_status &= ~(ST0_CU2|ST0_CU1);
147 clear_tsk_thread_flag(p, TIF_USEDFPU);
148 147
149#ifdef CONFIG_MIPS_MT_FPAFF 148#ifdef CONFIG_MIPS_MT_SMTC
150 /* 149 /*
151 * FPU affinity support is cleaner if we track the 150 * SMTC restores TCStatus after Status, and the CU bits
152 * user-visible CPU affinity from the very beginning. 151 * are aliased there.
153 * The generic cpus_allowed mask will already have
154 * been copied from the parent before copy_thread
155 * is invoked.
156 */ 152 */
157 p->thread.user_cpus_allowed = p->cpus_allowed; 153 childregs->cp0_tcstatus &= ~(ST0_CU2|ST0_CU1);
154#endif
155 clear_tsk_thread_flag(p, TIF_USEDFPU);
156
157#ifdef CONFIG_MIPS_MT_FPAFF
158 clear_tsk_thread_flag(p, TIF_FPUBOUND);
158#endif /* CONFIG_MIPS_MT_FPAFF */ 159#endif /* CONFIG_MIPS_MT_FPAFF */
159 160
160 if (clone_flags & CLONE_SETTLS) 161 if (clone_flags & CLONE_SETTLS)