summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/fpu/core.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2015-05-25 11:27:46 +0200
committerIngo Molnar <mingo@kernel.org>2015-05-27 14:11:30 +0200
commit9ccc27a5d297503e485373b69688d038a1d8e662 (patch)
tree316780b039d30bdc3896bc5209a0755144456327 /arch/x86/kernel/fpu/core.c
parent3e1bf47e5c81c2b895db4bea67f70c3ca8e5b984 (diff)
downloadlinux-9ccc27a5d297503e485373b69688d038a1d8e662.tar.bz2
x86/fpu: Remove error return values from copy_kernel_to_*regs() functions
None of the copy_kernel_to_*regs() FPU register copying functions are supposed to fail, and all of them have debugging checks that enforce this. Remove their return values and simplify their call sites, which have redundant error checks and error handling code paths. Cc: Andy Lutomirski <luto@amacapital.net> Cc: Bobby Powers <bobbypowers@gmail.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/kernel/fpu/core.c')
-rw-r--r--arch/x86/kernel/fpu/core.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c
index e0e0ee565dc3..8470df44c06d 100644
--- a/arch/x86/kernel/fpu/core.c
+++ b/arch/x86/kernel/fpu/core.c
@@ -126,12 +126,10 @@ void __kernel_fpu_end(void)
{
struct fpu *fpu = &current->thread.fpu;
- if (fpu->fpregs_active) {
- if (WARN_ON_FPU(copy_kernel_to_fpregs(fpu)))
- fpu__clear(fpu);
- } else {
+ if (fpu->fpregs_active)
+ copy_kernel_to_fpregs(fpu);
+ else
__fpregs_deactivate_hw();
- }
kernel_fpu_enable();
}
@@ -370,14 +368,8 @@ void fpu__restore(struct fpu *fpu)
/* Avoid __kernel_fpu_begin() right after fpregs_activate() */
kernel_fpu_disable();
fpregs_activate(fpu);
- if (unlikely(copy_kernel_to_fpregs(fpu))) {
- /* Copying the kernel state to FPU registers should never fail: */
- WARN_ON_FPU(1);
- fpu__clear(fpu);
- force_sig_info(SIGSEGV, SEND_SIG_PRIV, current);
- } else {
- fpu->counter++;
- }
+ copy_kernel_to_fpregs(fpu);
+ fpu->counter++;
kernel_fpu_enable();
}
EXPORT_SYMBOL_GPL(fpu__restore);