On 9/4/26 5:36 AM, Mathieu Poirier wrote:
From: Jean-Philippe Brucker <[email protected]>

Set the Ream VM bit in the IPA address space size when needed.

Signed-off-by: Jean-Philippe Brucker <[email protected]>
Signed-off-by: Mathieu Poirier <[email protected]>
---
  hw/arm/virt.c | 11 ++++++++++-
  1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 37211bc81926..61751aa31e0d 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -97,6 +97,8 @@
  #include "qemu/guest-random.h"
  #include "hw/watchdog/sbsa_gwdt.h"
+#include <linux/kvm.h>
+
  static GlobalProperty arm_virt_compat_defaults[] = {
      { TYPE_VIRTIO_IOMMU_PCI, "aw-bits", "48" },
  };
@@ -4053,9 +4055,12 @@ static int virt_kvm_type(MachineState *ms, const char 
*type_str)
      VirtMachineState *vms = VIRT_MACHINE(ms);
      int max_vm_pa_size, requested_pa_size;
      bool fixed_ipa;
+    int vm_type;

Lets initialize @vm_type when it's declared:

       VirtMachineState *vms = VIRT_MACHINE(ms)
       int vm_type = ms->cgs ? KVM_VM_TYPE_ARM_REALM : KVM_VM_TYPE_ARM_NORMAL;
       int max_vm_pa_size, requested_pa_size;
       bool fixed_ipa;

      max_vm_pa_size = kvm_arm_get_max_vm_ipa_size(ms, &fixed_ipa);
+ vm_type = (ms->cgs ? KVM_VM_TYPE_ARM_REALM : KVM_VM_TYPE_ARM_NORMAL);
+
      /* we freeze the memory map to compute the highest gpa */
      virt_set_memmap(vms, max_vm_pa_size);
@@ -4080,7 +4085,11 @@ static int virt_kvm_type(MachineState *ms, const char *type_str)
       * the implicit legacy 40b IPA setting, in which case the kvm_type
       * must be 0.
       */
-    return fixed_ipa ? 0 : requested_pa_size;
+    if (fixed_ipa) {
+        return 0;
+    }
+
+    return requested_pa_size | vm_type;
  }
static int virt_get_physical_address_range(MachineState *ms,

Thanks,
Gavin


Reply via email to