linux_dsm_epyc7002/arch/powerpc
Christophe Leroy 40530db7c6 powerpc: Fix 32-bit handling of MSR_EE on exceptions
[text mostly copied from benh's RFC/WIP]

ppc32 are still doing something rather gothic and wrong on 32-bit
which we stopped doing on 64-bit a while ago.

We have that thing where some handlers "copy" the EE value from the
original stack frame into the new MSR before transferring to the
handler.

Thus for a number of exceptions, we enter the handlers with interrupts
enabled.

This is rather fishy, some of the stuff that handlers might do early
on such as irq_enter/exit or user_exit, context tracking, etc...
should be run with interrupts off afaik.

Generally our handlers know when to re-enable interrupts if needed.

The problem we were having is that we assumed these interrupts would
return with interrupts enabled. However that isn't the case.

Instead, this patch changes things so that we always enter exception
handlers with interrupts *off* with the notable exception of syscalls
which are special (and get a fast path).

Suggested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2019-05-03 01:20:27 +10:00
..
boot Kbuild updates for v5.1 2019-03-10 17:48:21 -07:00
configs powerpc/configs: Enable CONFIG_USB_XHCI_HCD by default 2019-04-20 22:02:26 +10:00
crypto powerpc/crypto: Use cheaper random numbers for crc-vpmsum self-test 2019-04-20 22:03:11 +10:00
include powerpc/32: Add KASAN support 2019-05-03 01:20:26 +10:00
kernel powerpc: Fix 32-bit handling of MSR_EE on exceptions 2019-05-03 01:20:27 +10:00
kvm Merge branch 'topic/ppc-kvm' into next 2019-04-30 22:52:03 +10:00
lib powerpc: disable KASAN instrumentation on early/critical files. 2019-05-03 01:20:26 +10:00
math-emu powerpc: math-emu: remove unneeded header search paths 2019-01-14 20:39:27 +11:00
mm powerpc/mm: print hash info in a helper 2019-05-03 01:20:26 +10:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf 2019-03-16 12:20:08 -07:00
oprofile Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
perf powerpc updates for 5.1 2019-03-07 12:56:26 -08:00
platforms powerpc: disable KASAN instrumentation on early/critical files. 2019-05-03 01:20:26 +10:00
purgatory powerpc: disable KASAN instrumentation on early/critical files. 2019-05-03 01:20:26 +10:00
sysdev powerpc/xive: add OPAL extensions for the XIVE native exploitation support 2019-04-11 15:31:41 +10:00
tools powerpc/tools/checkpatch: Ignore DT_SPLIT_BINDING_PATCH 2018-12-04 19:45:01 +11:00
xmon powerpc: disable KASAN instrumentation on early/critical files. 2019-05-03 01:20:26 +10:00
Kbuild powerpc: Add -Werror at arch/powerpc level 2018-10-19 00:56:17 +11:00
Kconfig powerpc/32: Add KASAN support 2019-05-03 01:20:26 +10:00
Kconfig.debug powerpc/32: prepare shadow area for KASAN 2019-05-03 01:20:26 +10:00
Makefile powerpc: vdso: Make vdso32 installation conditional in vdso_install 2019-04-20 22:02:12 +10:00
Makefile.postlink License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00