diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c index ed00786f42518b505774d30069e7d7a9be98d247..c18a0c6236f15c9c5854502e2f744d95b1c3c808 100644 --- a/hw/i386/pc_sysfw.c +++ b/hw/i386/pc_sysfw.c @@ -210,7 +210,7 @@ static void pc_system_flash_map(PCMachineState *pcms, } if (csv_enabled()) { - if (kvm_hygon_coco_ext_inuse & KVM_CAP_HYGON_COCO_EXT_CSV3_SET_PRIV_MEM) + if (kvm_csv3_should_set_priv_mem()) csv3_set_guest_private_memory(&error_fatal); csv_load_data(flash_mem->addr, flash_ptr, flash_size, &error_fatal); diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h index 9f8099f48769bce629babe63b8399d5ce289ebe6..f050dfa1f75ded658005fb88f83b9c4b48ef30a7 100644 --- a/include/sysemu/kvm.h +++ b/include/sysemu/kvm.h @@ -168,6 +168,14 @@ extern bool kvm_has_msr_ghcb; */ #define kvm_msi_devid_required() (kvm_msi_use_devid) +/** + * kvm_csv3_should_set_priv_mem: + * Returns: true if we should explicitly request + * KVM_CSV3_SET_GUEST_PRIVATE_MEMORY. + */ +#define kvm_csv3_should_set_priv_mem() \ + (kvm_hygon_coco_ext_inuse & KVM_CAP_HYGON_COCO_EXT_CSV3_SET_PRIV_MEM) + #else #define kvm_enabled() (0) @@ -185,6 +193,7 @@ extern bool kvm_has_msr_ghcb; #define kvm_direct_msi_enabled() (false) #define kvm_ioeventfd_any_length_enabled() (false) #define kvm_msi_devid_required() (false) +#define kvm_csv3_should_set_priv_mem() (false) #endif /* CONFIG_KVM_IS_POSSIBLE */ diff --git a/target/i386/trace-events b/target/i386/trace-events index 0610d5ea8fdf213e103f37a636ae2ba8f9207b25..5d4a709a39dedc3f4b0a6ad27f4e51fe25fcdac9 100644 --- a/target/i386/trace-events +++ b/target/i386/trace-events @@ -21,7 +21,7 @@ kvm_sev_send_update_vmsa(uint32_t cpu_id, uint32_t cpu_index, void *dst, int len kvm_sev_receive_update_vmsa(uint32_t cpu_id, uint32_t cpu_index, void *src, int len, void *hdr, int hdr_len) "cpu_id %d cpu_index %d trans %p len %d hdr %p hdr_len %d" # csv.c -kvm_csv3_launch_encrypt_data(uint64_t gpa, void *addr, uint64_t len) "gpa 0x%" PRIx64 "addr %p len 0x%" PRIx64 +kvm_csv3_launch_encrypt_data(uint64_t gpa, void *addr, uint64_t len) "gpa 0x%" PRIx64 " addr %p len 0x%" PRIx64 kvm_csv3_send_encrypt_data(void *dst, int len) "trans %p len %d" kvm_csv3_send_encrypt_context(void *dst, int len) "trans %p len %d" kvm_csv3_receive_encrypt_data(void *dst, int len, void *hdr, int hdr_len) "trans %p len %d hdr %p hdr_len %d"