linux_dsm_epyc7002/arch
Hyunwook (Wooky) Baek 5cc7606320 x86/sev-es: Handle string port IO to kernel memory properly
commit 7024f60d655272bd2ca1d3a4c9e0a63319b1eea1 upstream.

Don't assume dest/source buffers are userspace addresses when manually
copying data for string I/O or MOVS MMIO, as {get,put}_user() will fail
if handed a kernel address and ultimately lead to a kernel panic.

When invoking INSB/OUTSB instructions in kernel space in a
SEV-ES-enabled VM, the kernel crashes with the following message:

  "SEV-ES: Unsupported exception in #VC instruction emulation - can't continue"

Handle that case properly.

 [ bp: Massage commit message. ]

Fixes: f980f9c31a ("x86/sev-es: Compile early handler code into kernel image")
Signed-off-by: Hyunwook (Wooky) Baek <baekhw@google.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: David Rientjes <rientjes@google.com>
Link: https://lkml.kernel.org/r/20210110071102.2576186-1-baekhw@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-01-27 11:55:28 +01:00
..
alpha local64.h: make <asm/local64.h> mandatory 2021-01-12 20:18:16 +01:00
arc arch/arc: add copy_user_page() to <asm/page.h> to fix build error on ARC 2021-01-19 18:27:26 +01:00
arm xen: Fix event channel callback via INTX/GSI 2021-01-27 11:55:00 +01:00
arm64 arm64: entry: remove redundant IRQ flag tracing 2021-01-27 11:55:07 +01:00
c6x arch-cleanup-2020-10-22 2020-10-23 10:06:38 -07:00
csky local64.h: make <asm/local64.h> mandatory 2021-01-12 20:18:16 +01:00
h8300 local64.h: make <asm/local64.h> mandatory 2021-01-12 20:18:16 +01:00
hexagon local64.h: make <asm/local64.h> mandatory 2021-01-12 20:18:16 +01:00
ia64 local64.h: make <asm/local64.h> mandatory 2021-01-12 20:18:16 +01:00
m68k local64.h: make <asm/local64.h> mandatory 2021-01-12 20:18:16 +01:00
microblaze local64.h: make <asm/local64.h> mandatory 2021-01-12 20:18:16 +01:00
mips MIPS: relocatable: fix possible boot hangup with KASLR enabled 2021-01-19 18:27:20 +01:00
nds32 local64.h: make <asm/local64.h> mandatory 2021-01-12 20:18:16 +01:00
nios2 sched/idle: Fix arch_cpu_idle() vs tracing 2020-11-24 16:47:35 +01:00
openrisc sched/idle: Fix arch_cpu_idle() vs tracing 2020-11-24 16:47:35 +01:00
parisc local64.h: make <asm/local64.h> mandatory 2021-01-12 20:18:16 +01:00
powerpc powerpc/64s: fix scv entry fallback flush vs interrupt 2021-01-27 11:55:12 +01:00
riscv RISC-V: Fix maximum allowed phsyical memory for RV32 2021-01-27 11:55:04 +01:00
s390 local64.h: make <asm/local64.h> mandatory 2021-01-12 20:18:16 +01:00
sh sh: Remove unused HAVE_COPY_THREAD_TLS macro 2021-01-27 11:55:20 +01:00
sparc local64.h: make <asm/local64.h> mandatory 2021-01-12 20:18:16 +01:00
um um: ubd: Submit all data segments atomically 2021-01-06 14:56:55 +01:00
x86 x86/sev-es: Handle string port IO to kernel memory properly 2021-01-27 11:55:28 +01:00
xtensa local64.h: make <asm/local64.h> mandatory 2021-01-12 20:18:16 +01:00
.gitignore
Kconfig fanotify: Fix sys_fanotify_mark() on native x86-32 2021-01-17 14:16:59 +01:00