OSDN Git Service

ptp: kvm: Use decrypted memory in confidential guest on x86
authorJeremi Piotrowski <jpiotrowski@linux.microsoft.com>
Wed, 8 Mar 2023 15:05:31 +0000 (15:05 +0000)
committerJakub Kicinski <kuba@kernel.org>
Sat, 18 Mar 2023 04:57:52 +0000 (21:57 -0700)
commit6365ba64b4dbe8b59ddaeaa724b281f3787715d5
tree22b37a8da0da4dcbb9ef3d98511d60c9f9ab3bcf
parent1118aa4c70a6978afb0c4391ad29826c14b842b3
ptp: kvm: Use decrypted memory in confidential guest on x86

KVM_HC_CLOCK_PAIRING currently fails inside SEV-SNP guests because the
guest passes an address to static data to the host. In confidential
computing the host can't access arbitrary guest memory so handling the
hypercall runs into an "rmpfault". To make the hypercall work, the guest
needs to explicitly mark the memory as decrypted. Do that in
kvm_arch_ptp_init(), but retain the previous behavior for
non-confidential guests to save us from having to allocate memory.

Add a new arch-specific function (kvm_arch_ptp_exit()) to free the
allocation and mark the memory as encrypted again.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@linux.microsoft.com>
Link: https://lore.kernel.org/r/20230308150531.477741-1-jpiotrowski@linux.microsoft.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/ptp/ptp_kvm_arm.c
drivers/ptp/ptp_kvm_common.c
drivers/ptp/ptp_kvm_x86.c
include/linux/ptp_kvm.h