@@ -682,22 +682,22 @@ void aarch64_add_pauth_properties(Object *obj)
}
}
-#if defined(CONFIG_KVM) || defined(CONFIG_HVF)
static void aarch64_host_initfn(Object *obj)
{
+#if defined(CONFIG_KVM)
ARMCPU *cpu = ARM_CPU(obj);
-
-#ifdef CONFIG_KVM
kvm_arm_set_cpu_features_from_host(cpu);
if (arm_feature(&cpu->env, ARM_FEATURE_AARCH64)) {
aarch64_add_sve_properties(obj);
aarch64_add_pauth_properties(obj);
}
-#else
+#elif defined(CONFIG_HVF)
+ ARMCPU *cpu = ARM_CPU(obj);
hvf_arm_set_cpu_features_from_host(cpu);
+#else
+ g_assert_not_reached();
#endif
}
-#endif
/* -cpu max: if KVM is enabled, like -cpu host (best possible with this host);
* otherwise, a CPU with as many features enabled as our emulation supports.
@@ -709,7 +709,9 @@ static void aarch64_max_initfn(Object *obj)
ARMCPU *cpu = ARM_CPU(obj);
if (kvm_enabled()) {
- kvm_arm_set_cpu_features_from_host(cpu);
+ /* With KVM, '-cpu max' is identical to '-cpu host' */
+ aarch64_host_initfn(obj);
+ return;
} else {
uint64_t t;
uint32_t u;