summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndrew Jones <drjones@redhat.com>2021-03-10 14:52:17 +0100
committerPeter Maydell <peter.maydell@linaro.org>2021-03-12 12:47:11 +0000
commit516fc0a081161eab5b3a89c7f243954945ee390e (patch)
tree675b35aa5f8663c4e0ec496eb6bcbf19fb47899f
parentfc49b77fd391fdcfc9c0b61a8c301ac0d15232e9 (diff)
downloadfocaccia-qemu-516fc0a081161eab5b3a89c7f243954945ee390e.tar.gz
focaccia-qemu-516fc0a081161eab5b3a89c7f243954945ee390e.zip
accel: kvm: Fix kvm_type invocation
Prior to commit f2ce39b4f067 a MachineClass kvm_type method
only needed to be registered to ensure it would be executed.
With commit f2ce39b4f067 a kvm-type machine property must also
be specified. hw/arm/virt relies on the kvm_type method to pass
its selected IPA limit to KVM, but this is not exposed as a
machine property. Restore the previous functionality of invoking
kvm_type when it's present.

Fixes: f2ce39b4f067 ("vl: make qemu_get_machine_opts static")
Signed-off-by: Andrew Jones <drjones@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-id: 20210310135218.255205-2-drjones@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--accel/kvm/kvm-all.c2
-rw-r--r--include/hw/boards.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index f88a52393f..37b0a1861e 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -2068,6 +2068,8 @@ static int kvm_init(MachineState *ms)
                                                             "kvm-type",
                                                             &error_abort);
         type = mc->kvm_type(ms, kvm_type);
+    } else if (mc->kvm_type) {
+        type = mc->kvm_type(ms, NULL);
     }
 
     do {
diff --git a/include/hw/boards.h b/include/hw/boards.h
index 5fda5fd128..4a90549ad8 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -128,6 +128,7 @@ typedef struct {
  * @kvm_type:
  *    Return the type of KVM corresponding to the kvm-type string option or
  *    computed based on other criteria such as the host kernel capabilities.
+ *    kvm-type may be NULL if it is not needed.
  * @numa_mem_supported:
  *    true if '--numa node.mem' option is supported and false otherwise
  * @smp_parse: