aboutsummaryrefslogtreecommitdiff
path: root/accel/kvm/kvm-all.c
diff options
context:
space:
mode:
authorIsaku Yamahata <isaku.yamahata@intel.com>2024-02-29 01:36:54 -0500
committerPaolo Bonzini <pbonzini@redhat.com>2024-04-23 17:35:26 +0200
commitc5d9425ef4da9f43fc0903905ad415456d1ab843 (patch)
tree8330cae0411a12e702e1cf2d0cac60116550bb4c /accel/kvm/kvm-all.c
parentc15e5684071d93174e446be318f49d8d59b15d6d (diff)
downloadqemu-c5d9425ef4da9f43fc0903905ad415456d1ab843.zip
qemu-c5d9425ef4da9f43fc0903905ad415456d1ab843.tar.gz
qemu-c5d9425ef4da9f43fc0903905ad415456d1ab843.tar.bz2
kvm/tdx: Don't complain when converting vMMIO region to shared
Because vMMIO region needs to be shared region, guest TD may explicitly convert such region from private to shared. Don't complain such conversion. Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com> Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com> Message-ID: <20240229063726.610065-34-xiaoyao.li@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'accel/kvm/kvm-all.c')
-rw-r--r--accel/kvm/kvm-all.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index 9eef2c6..0911154 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -2927,9 +2927,22 @@ int kvm_convert_memory(hwaddr start, hwaddr size, bool to_private)
}
if (!memory_region_has_guest_memfd(mr)) {
- error_report("Converting non guest_memfd backed memory region "
- "(0x%"HWADDR_PRIx" ,+ 0x%"HWADDR_PRIx") to %s",
- start, size, to_private ? "private" : "shared");
+ /*
+ * Because vMMIO region must be shared, guest TD may convert vMMIO
+ * region to shared explicitly. Don't complain such case. See
+ * memory_region_type() for checking if the region is MMIO region.
+ */
+ if (!to_private &&
+ !memory_region_is_ram(mr) &&
+ !memory_region_is_ram_device(mr) &&
+ !memory_region_is_rom(mr) &&
+ !memory_region_is_romd(mr)) {
+ ret = 0;
+ } else {
+ error_report("Convert non guest_memfd backed memory region "
+ "(0x%"HWADDR_PRIx" ,+ 0x%"HWADDR_PRIx") to %s",
+ start, size, to_private ? "private" : "shared");
+ }
goto out_unref;
}