From: Joerg Roedel <jroedel@xxxxxxx> Hi, here is the second version of my pending SEV-ES fixes. The most important patches are patch 1 to 5, as they fix warnings and splats that trigger with various debugging options are enabled. Patches 6 to 8 fix a correctness issue in the instruction emulation part of the #VC exception handler. Please review. Thanks, Joerg Link to v1: https://lore.kernel.org/lkml/20210512075445.18935-1-joro@xxxxxxxxxx/ Changes since v1: - Documented why __get_user()/__put_user() are safe to use in the #VC handlers memory access path. - Merged the revert into patch 3 - Refactored code in the instruction decoder and added #GP reporting when getting the instructions linear address fails. Joerg Roedel (8): x86/sev-es: Don't return NULL from sev_es_get_ghcb() x86/sev-es: Forward page-faults which happen during emulation x86/sev-es: Use __put_user()/__get_user() for data accesses x86/sev-es: Fix error message in runtime #VC handler x86/sev-es: Leave NMI-mode before sending signals x86/insn-eval: Make 0 a valid RIP for insn_get_effective_ip() x86/insn: Extend error reporting from insn_fetch_from_user[_inatomic]() x86/sev-es: Propagate #GP if getting linear instruction address failed arch/x86/include/asm/insn-eval.h | 6 +- arch/x86/kernel/sev.c | 127 +++++++++++++++++++++---------- arch/x86/kernel/umip.c | 10 +-- arch/x86/lib/insn-eval.c | 52 ++++++++----- 4 files changed, 129 insertions(+), 66 deletions(-) base-commit: a50c5bebc99c525e7fbc059988c6a5ab8680cb76 -- 2.31.1