> From: Tianyu Lan <ltykernel@xxxxxxxxx> > Sent: Wednesday, August 23, 2023 12:06 AM > To: Dexuan Cui <decui@xxxxxxxxxxxxx>; ak@xxxxxxxxxxxxxxx; > [...] > On 8/12/2023 6:18 AM, Dexuan Cui wrote: > > A fully enlightened TDX guest on Hyper-V (i.e. without the paravisor) only > > uses the GHCI call rather than hv_hypercall_pg. > > > > In hv_do_hypercall(), Hyper-V requires that the input/output addresses > > must have the cc_mask. I'll remove the above sentence, since this is no longer true on generally available Hyper-V: cc_mask still works, but it's not required. > > [...] > Reviewed-by: Tianyu Lan <tiala@xxxxxxxxxxxxx> Thanks! > > --- a/arch/x86/hyperv/hv_init.c > > +++ b/arch/x86/hyperv/hv_init.c > > @@ -481,6 +481,10 @@ void __init hyperv_init(void) > > /* Hyper-V requires to write guest os id via ghcb in SNP IVM. */ > > hv_ghcb_msr_write(HV_X64_MSR_GUEST_OS_ID, guest_id); > > > > + /* A TDX guest uses the GHCI call rather than hv_hypercall_pg. */ > > + if (hv_isolation_type_tdx()) > > + goto skip_hypercall_pg_init; > > + > > Nitpick: > Put hypercal page initialization code into a sepearate function and > skip the function in the tdx guest instead of adding the label. This is doable. The intention here is to minimize the changes. In the future, we'll introduce a hypercall function structure. We can do code refactoring at that time.