diff options
Diffstat (limited to 'arch/mips/include/asm/fpu.h')
-rw-r--r-- | arch/mips/include/asm/fpu.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/mips/include/asm/fpu.h b/arch/mips/include/asm/fpu.h index b104ad9d655f..084780b355aa 100644 --- a/arch/mips/include/asm/fpu.h +++ b/arch/mips/include/asm/fpu.h | |||
@@ -30,7 +30,7 @@ | |||
30 | struct sigcontext; | 30 | struct sigcontext; |
31 | struct sigcontext32; | 31 | struct sigcontext32; |
32 | 32 | ||
33 | extern void _init_fpu(void); | 33 | extern void _init_fpu(unsigned int); |
34 | extern void _save_fp(struct task_struct *); | 34 | extern void _save_fp(struct task_struct *); |
35 | extern void _restore_fp(struct task_struct *); | 35 | extern void _restore_fp(struct task_struct *); |
36 | 36 | ||
@@ -188,6 +188,7 @@ static inline void lose_fpu(int save) | |||
188 | 188 | ||
189 | static inline int init_fpu(void) | 189 | static inline int init_fpu(void) |
190 | { | 190 | { |
191 | unsigned int fcr31 = current->thread.fpu.fcr31; | ||
191 | int ret = 0; | 192 | int ret = 0; |
192 | 193 | ||
193 | if (cpu_has_fpu) { | 194 | if (cpu_has_fpu) { |
@@ -198,7 +199,7 @@ static inline int init_fpu(void) | |||
198 | return ret; | 199 | return ret; |
199 | 200 | ||
200 | if (!cpu_has_fre) { | 201 | if (!cpu_has_fre) { |
201 | _init_fpu(); | 202 | _init_fpu(fcr31); |
202 | 203 | ||
203 | return 0; | 204 | return 0; |
204 | } | 205 | } |
@@ -212,7 +213,7 @@ static inline int init_fpu(void) | |||
212 | config5 = clear_c0_config5(MIPS_CONF5_FRE); | 213 | config5 = clear_c0_config5(MIPS_CONF5_FRE); |
213 | enable_fpu_hazard(); | 214 | enable_fpu_hazard(); |
214 | 215 | ||
215 | _init_fpu(); | 216 | _init_fpu(fcr31); |
216 | 217 | ||
217 | /* Restore FRE */ | 218 | /* Restore FRE */ |
218 | write_c0_config5(config5); | 219 | write_c0_config5(config5); |