From: Linus Torvalds Date: Tue, 15 Mar 2016 17:23:56 +0000 (-0700) Subject: Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git... X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=ecc026bff6e8444c6b50dcde192e7acdaf42bf82;p=openwrt%2Fstaging%2Fblogic.git Merge branch 'x86-fpu-for-linus' of git://git./linux/kernel/git/tip/tip Pull x86 fpu updates from Ingo Molnar: "The biggest change in terms of impact is the changing of the FPU context switch model to 'eagerfpu' for all CPU types, via: commit 58122bf1d856: "x86/fpu: Default eagerfpu=on on all CPUs" This makes all FPU saves and restores synchronous and makes the FPU code a lot more obvious to read. In the next cycle, if this change is problem free, we'll remove the old lazy FPU restore code altogether. This change flushed out some old bugs, which should all be fixed by now, BYMMV" * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/fpu: Default eagerfpu=on on all CPUs x86/fpu: Speed up lazy FPU restores slightly x86/fpu: Fold fpu_copy() into fpu__copy() x86/fpu: Fix FNSAVE usage in eagerfpu mode x86/fpu: Fix math emulation in eager fpu mode --- ecc026bff6e8444c6b50dcde192e7acdaf42bf82 diff --cc arch/x86/kernel/traps.c index 5c9ca2bb9fe9,36a9c017540e..06cbe25861f1 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c @@@ -792,13 -750,12 +792,12 @@@ dotraplinkage voi do_device_not_available(struct pt_regs *regs, long error_code) { RCU_LOCKDEP_WARN(!rcu_is_watching(), "entry code didn't wake RCU"); - BUG_ON(use_eager_fpu()); #ifdef CONFIG_MATH_EMULATION - if (read_cr0() & X86_CR0_EM) { + if (!boot_cpu_has(X86_FEATURE_FPU) && (read_cr0() & X86_CR0_EM)) { struct math_emu_info info = { }; - conditional_sti(regs); + cond_local_irq_enable(regs); info.regs = regs; math_emulate(&info);