linux/arch
Michael Ellerman 345712c95e KVM: PPC: Book3S HV: Flush link stack on guest exit to host kernel
commit af2e8c68b9 upstream.

On some systems that are vulnerable to Spectre v2, it is up to
software to flush the link stack (return address stack), in order to
protect against Spectre-RSB.

When exiting from a guest we do some house keeping and then
potentially exit to C code which is several stack frames deep in the
host kernel. We will then execute a series of returns without
preceeding calls, opening up the possiblity that the guest could have
poisoned the link stack, and direct speculative execution of the host
to a gadget of some sort.

To prevent this we add a flush of the link stack on exit from a guest.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
[dja: straightforward backport to v4.19]
Signed-off-by: Daniel Axtens <dja@axtens.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-12-01 09:17:46 +01:00
..
alpha alpha: Fix Eiger NR_IRQS to 128 2019-02-20 10:25:47 +01:00
arc ARC: perf: Accommodate big-endian CPU 2019-12-01 09:17:37 +01:00
arm ARM: 8904/1: skip nomap memblocks while finding the lowmem/highmem boundary 2019-12-01 09:17:37 +01:00
arm64 arm64: makefile fix build of .i file in external module case 2019-12-01 09:17:14 +01:00
c6x
h8300 h8300: use cc-cross-prefix instead of hardcoding h8300-unknown-linux- 2019-04-05 22:32:55 +02:00
hexagon
ia64 ia64:unwind: fix double free for mod->arch.init_unw_table 2019-10-05 13:09:38 +02:00
m68k m68k: fix command-line parsing when passed from u-boot 2019-12-01 09:16:22 +01:00
microblaze mm: make the __PAGETABLE_PxD_FOLDED defines non-empty 2018-12-29 13:37:57 +01:00
mips MIPS: kexec: Relax memory restriction 2019-11-20 18:47:15 +01:00
nds32 nds32: Fix bug in bitfield.h 2019-12-01 09:17:18 +01:00
nios2
openrisc
parisc parisc: Fix vmap memory leak in ioremap()/iounmap() 2019-10-29 09:20:00 +01:00
powerpc KVM: PPC: Book3S HV: Flush link stack on guest exit to host kernel 2019-12-01 09:17:46 +01:00
riscv RISC-V: Avoid corrupting the upper 32-bit of phys_addr_t in ioremap 2019-12-01 09:16:53 +01:00
s390 s390/perf: Return error when debug_register fails 2019-12-01 09:16:42 +01:00
sh sh: kernel: hw_breakpoint: Fix missing break in switch statement 2019-08-25 10:47:42 +02:00
sparc sparc64: Rework xchg() definition to avoid warnings. 2019-12-01 09:17:01 +01:00
um um: Make line/tty semantics use true write IRQ 2019-12-01 09:17:04 +01:00
unicore32
x86 x86/speculation: Fix redundant MDS mitigation message 2019-12-01 09:17:37 +01:00
xtensa xtensa: drop EXPORT_SYMBOL for outs*/ins* 2019-10-29 09:20:00 +01:00
.gitignore
Kconfig jump_label: move 'asm goto' support test to Kconfig 2019-06-04 08:02:34 +02:00