android_kernel_oneplus_msm8998/arch/x86
Thomas Gleixner bc791e8195 x86/irq/64: Limit IST stack overflow check to #DB stack
[ Upstream commit 7dbcf2b0b770eeb803a416ee8dcbef78e6389d40 ]

Commit

  37fe6a42b3 ("x86: Check stack overflow in detail")

added a broad check for the full exception stack area, i.e. it considers
the full exception stack area as valid.

That's wrong in two aspects:

 1) It does not check the individual areas one by one

 2) #DF, NMI and #MCE are not enabling interrupts which means that a
    regular device interrupt cannot happen in their context. In fact if a
    device interrupt hits one of those IST stacks that's a bug because some
    code path enabled interrupts while handling the exception.

Limit the check to the #DB stack and consider all other IST stacks as
'overflow' or invalid.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Mitsuo Hayasaka <mitsuo.hayasaka.hu@hitachi.com>
Cc: Nicolai Stange <nstange@suse.de>
Cc: Sean Christopherson <sean.j.christopherson@intel.com>
Cc: x86-ml <x86@kernel.org>
Link: https://lkml.kernel.org/r/20190414160143.682135110@linutronix.de
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-06-11 12:23:59 +02:00
..
boot x86/build: Specify elf_i386 linker emulation explicitly for i386 objects 2019-04-27 09:33:53 +02:00
configs kconfig: tinyconfig: provide whole choice blocks to avoid warnings 2016-09-24 10:07:42 +02:00
crypto crypto: x86/crct10dif-pcl - fix use via crypto_shash_digest() 2019-06-11 12:23:35 +02:00
entry x86/speculation/mds: Clear CPU buffers on exit to user 2019-05-16 19:45:14 +02:00
ia32 x86/a.out: Clear the dump structure initially 2019-02-20 10:13:23 +01:00
include x86/speculation/mds: Add mitigation mode VMWERV 2019-05-16 19:45:14 +02:00
kernel x86/irq/64: Limit IST stack overflow check to #DB stack 2019-06-11 12:23:59 +02:00
kvm KVM: x86: fix return value for reserved EFER 2019-06-11 12:23:51 +02:00
lguest x86/paravirt: Prevent rtc_cmos platform device init on PV guests 2015-12-19 21:35:13 +01:00
lib x86/uaccess: Use __uaccess_begin_nospec() and uaccess_try_nospec 2018-12-17 21:55:14 +01:00
math-emu x86/fpu/math-emu: Fix possible uninitialized variable use 2018-02-25 11:03:43 +01:00
mm x86/mm: Remove in_nmi() warning from 64-bit implementation of vmalloc_fault() 2019-06-11 12:23:56 +02:00
net bpf, x64: increase number of passes 2018-03-28 18:40:17 +02:00
oprofile x86/cpufeature: Carve out X86_FEATURE_* 2018-07-17 11:31:44 +02:00
pci x86/PCI: Fix Broadcom CNB20LE unintended sign extension (redux) 2019-02-20 10:13:04 +01:00
platform Revert "x86/platform/UV: Use efi_runtime_lock to serialise BIOS calls" 2019-03-23 08:44:28 +01:00
power x86/power: Fix swsusp_arch_resume prototype 2018-05-30 07:48:55 +02:00
purgatory x86/kexec: add -fno-PIE 2016-11-26 09:54:52 +01:00
ras x86/ras/mce_amd_inj: Inject bank 4 errors on the NBC 2015-10-12 16:15:48 +02:00
realmode x86/build: Specify elf_i386 linker emulation explicitly for i386 objects 2019-04-27 09:33:53 +02:00
tools x86: Treat R_X86_64_PLT32 as R_X86_64_PC32 2018-03-18 11:17:52 +01:00
um um: Avoid longjmp/setjmp symbol clashes with libpthread.a 2018-11-10 07:41:35 -08:00
video
xen xen: fix xen_qlock_wait() 2018-11-21 09:27:36 +01:00
.gitignore
Kbuild
Kconfig x86/Kconfig: Select SCHED_SMT if SMP enabled 2019-05-16 19:45:11 +02:00
Kconfig.cpu x86/Kconfig/cpus: Fix/complete CPU type help texts 2015-10-21 11:12:56 +02:00
Kconfig.debug x86/cpufeature: Replace the old static_cpu_has() with safe variant 2018-07-17 11:31:44 +02:00
Makefile x86/build: Use cc-option to validate stack alignment parameter 2018-11-27 16:08:00 +01:00
Makefile.um
Makefile_32.cpu