From: Tianyu Lan <ltykernel@xxxxxxxxx> Sent: Monday, June 13, 2022 6:46 PM > > Hyper-V Isolation VM current code uses sev_es_ghcb_hv_call() > to read/write MSR via GHCB page and depends on the sev code. > This may cause regression when sev code changes interface > design. > > The latest SEV-ES code requires to negotiate GHCB version before > reading/writing MSR via GHCB page and sev_es_ghcb_hv_call() doesn't > work for Hyper-V Isolation VM. Add Hyper-V ghcb related implementation > to decouple SEV and Hyper-V code. Negotiate GHCB version in the > hyperv_init() and use the version to communicate with Hyper-V > in the ghcb hv call function. > > Fixes: 2ea29c5abbc2 ("x86/sev: Save the negotiated GHCB version") > Signed-off-by: Tianyu Lan <Tianyu.Lan@xxxxxxxxxxxxx> > --- > Change since v1: > - Negotiate ghcb version in Hyper-V init. > - use native_wrmsrl() instead of native_wrmsr() in the > wr_ghcb_msr(). > --- > arch/x86/hyperv/hv_init.c | 6 +++ > arch/x86/hyperv/ivm.c | 84 ++++++++++++++++++++++++++++++--- > arch/x86/include/asm/mshyperv.h | 4 ++ > 3 files changed, 88 insertions(+), 6 deletions(-) > Reviewed-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>