Drivers: hv: vmbus: Bring the post_msg_page back for TDX VMs with the paravisor
authorDexuan Cui <decui@microsoft.com>
Thu, 24 Aug 2023 08:07:09 +0000 (01:07 -0700)
committerWei Liu <wei.liu@kernel.org>
Fri, 25 Aug 2023 00:04:57 +0000 (00:04 +0000)
commit23378295042a4bcaeec350733a4771678e7a1f3a
tree96e4447fe9da4a905966d611f98ace45fb4ea714
parentd3a9d7e49d15316f68f4347f48adcd1665834980
Drivers: hv: vmbus: Bring the post_msg_page back for TDX VMs with the paravisor

The post_msg_page was removed in
commit 9a6b1a170ca8 ("Drivers: hv: vmbus: Remove the per-CPU post_msg_page")

However, it turns out that we need to bring it back, but only for a TDX VM
with the paravisor: in such a VM, the hyperv_pcpu_input_arg is not decrypted,
but the HVCALL_POST_MESSAGE in such a VM needs a decrypted page as the
hypercall input page: see the comments in hyperv_init() for a detailed
explanation.

Except for HVCALL_POST_MESSAGE and HVCALL_SIGNAL_EVENT, the other hypercalls
in a TDX VM with the paravisor still use hv_hypercall_pg and must use the
hyperv_pcpu_input_arg (which is encrypted in such a VM), when a hypercall
input page is used.

Signed-off-by: Dexuan Cui <decui@microsoft.com>
Reviewed-by: Tianyu Lan <tiala@microsoft.com>
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
Signed-off-by: Wei Liu <wei.liu@kernel.org>
Link: https://lore.kernel.org/r/20230824080712.30327-8-decui@microsoft.com
arch/x86/hyperv/hv_init.c
drivers/hv/hv.c
drivers/hv/hyperv_vmbus.h