linux-stable/arch/x86
Siarhei Liakh ab693cc665 x86: Call fixup_exception() before notify_die() in math_error()
commit 3ae6295ccb upstream.

fpu__drop() has an explicit fwait which under some conditions can trigger a
fixable FPU exception while in kernel. Thus, we should attempt to fixup the
exception first, and only call notify_die() if the fixup failed just like
in do_general_protection(). The original call sequence incorrectly triggers
KDB entry on debug kernels under particular FPU-intensive workloads.

Andy noted, that this makes the whole conditional irq enable thing even
more inconsistent, but fixing that it outside the scope of this.

Signed-off-by: Siarhei Liakh <siarhei.liakh@concurrent-rt.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Andy Lutomirski <luto@kernel.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: "Borislav  Petkov" <bpetkov@suse.de>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/DM5PR11MB201156F1CAB2592B07C79A03B17D0@DM5PR11MB2011.namprd11.prod.outlook.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:24:46 +02:00
..
boot efi: Avoid potential crashes, fix the 'struct efi_pci_io_protocol_32' definition for mixed mode 2018-05-22 18:54:00 +02:00
configs x86/unwind: Rename unwinder config options to 'CONFIG_UNWINDER_*' 2017-12-25 14:26:13 +01:00
crypto crypto: x86/cast5-avx - fix ECB encryption when long sg follows short one 2018-04-08 14:26:32 +02:00
entry x86/vsyscall/64: Use proper accessor to update P4D entry 2018-03-28 18:24:46 +02:00
events perf/x86/intel: Don't enable freeze-on-smi for PerfMon V1 2018-06-21 04:02:48 +09:00
hyperv x86/hyperv: Check for required priviliges in hyperv_init() 2018-04-26 11:02:13 +02:00
ia32 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
include x86/spectre_v1: Disable compiler optimizations over array_index_mask_nospec() 2018-07-03 11:24:46 +02:00
kernel x86: Call fixup_exception() before notify_die() in math_error() 2018-07-03 11:24:46 +02:00
kvm x86: Delay skip of emulated hypercall instruction 2018-06-21 04:02:57 +09:00
lib Revert "x86/retpoline: Simplify vmexit_fill_RSB()" 2018-03-15 10:54:36 +01:00
math-emu License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mm x86/mm: Do not forbid _PAGE_RW before init for __ro_after_init 2018-05-30 07:52:22 +02:00
net bpf, x64: fix memleak when not converging after image 2018-06-21 04:02:52 +09:00
oprofile x86/oprofile: Fix bogus GCC-8 warning in nmi_setup() 2018-02-28 10:19:41 +01:00
pci x86/PCI: Make broadcom_postcore_init() check acpi_disabled 2017-12-14 09:52:53 +01:00
platform x86/platform/uv/BAU: Add APIC idt entry 2018-04-08 14:26:27 +02:00
power x86/power: Fix swsusp_arch_resume prototype 2018-04-26 11:02:16 +02:00
purgatory License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ras License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
realmode x86-64/realmode: Add instruction suffix 2018-03-15 10:54:36 +01:00
tools x86: Treat R_X86_64_PLT32 as R_X86_64_PC32 2018-03-19 08:42:44 +01:00
um um: Use POSIX ucontext_t instead of struct ucontext 2018-04-24 09:36:33 +02:00
video
xen x86/xen: Add call of speculative_store_bypass_ht_init() to PV paths 2018-07-03 11:24:46 +02:00
.gitignore
Kbuild
Kconfig objtool, retpolines: Integrate objtool with retpoline support more closely 2018-03-15 10:54:38 +01:00
Kconfig.cpu License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig.debug x86/unwind: Make CONFIG_UNWINDER_ORC=y the default in kconfig for 64-bit 2017-12-25 14:26:14 +01:00
Makefile x86/build/64: Force the linker to use 2MB page size 2018-03-28 18:24:47 +02:00
Makefile.um License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile_32.cpu License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00