diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-20 22:57:51 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-20 22:57:51 -0700 |
commit | ea8df8c5e609a53f4d03d133baea9561412f4303 (patch) | |
tree | 1451390f27ffad89c11671eb3e61d66f48dca00b /include/asm-mips/fpu.h | |
parent | 241c39b9ac4bf847013aa06cce6d4d61426a2006 (diff) | |
parent | 1d464c26b5625215c4b35fb336c8f3c57d248c2e (diff) |
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
[MIPS] Fix wrong checksum for split TCP packets on 64-bit MIPS
[MIPS] Fix BUG(), BUG_ON() handling
[MIPS] Retry {save,restore}_fp_context if failed in atomic context.
[MIPS] Disallow CpU exception in kernel again.
[MIPS] Add missing silicon revisions for BCM112x
Diffstat (limited to 'include/asm-mips/fpu.h')
-rw-r--r-- | include/asm-mips/fpu.h | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/include/asm-mips/fpu.h b/include/asm-mips/fpu.h index 4e12d1f9534..b414a7d9db4 100644 --- a/include/asm-mips/fpu.h +++ b/include/asm-mips/fpu.h @@ -68,8 +68,6 @@ do { \ /* We don't care about the c0 hazard here */ \ } while (0) -#define __fpu_enabled() (read_c0_status() & ST0_CU1) - #define enable_fpu() \ do { \ if (cpu_has_fpu) \ @@ -102,14 +100,19 @@ static inline void __own_fpu(void) set_thread_flag(TIF_USEDFPU); } -static inline void own_fpu(int restore) +static inline void own_fpu_inatomic(int restore) { - preempt_disable(); if (cpu_has_fpu && !__is_fpu_owner()) { __own_fpu(); if (restore) _restore_fp(current); } +} + +static inline void own_fpu(int restore) +{ + preempt_disable(); + own_fpu_inatomic(restore); preempt_enable(); } @@ -162,18 +165,4 @@ static inline fpureg_t *get_fpu_regs(struct task_struct *tsk) return tsk->thread.fpu.fpr; } -static inline void enable_fp_in_kernel(void) -{ - set_thread_flag(TIF_ALLOW_FP_IN_KERNEL); - /* make sure CU1 and FPU ownership are consistent */ - if (!__is_fpu_owner() && __fpu_enabled()) - __disable_fpu(); -} - -static inline void disable_fp_in_kernel(void) -{ - BUG_ON(!__is_fpu_owner() && __fpu_enabled()); - clear_thread_flag(TIF_ALLOW_FP_IN_KERNEL); -} - #endif /* _ASM_FPU_H */ |