x86/sev-es: Handle string port IO to kernel memory properly
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: f980f9c3 ("x86/sev-es: Compile early handler code into kernel image") Signed-off-by: NHyunwook (Wooky) Baek <baekhw@google.com> Signed-off-by: NBorislav Petkov <bp@suse.de> Acked-by: NDavid Rientjes <rientjes@google.com> Link: https://lkml.kernel.org/r/20210110071102.2576186-1-baekhw@google.com
Showing
想要评论请 注册 或 登录