On 4/22/25 07:54, Philippe Mathieu-Daudé wrote:
Replace compile-time check on CONFIG_{ACCEL} by
runtime check on {accel}_enabled() helpers.


Maybe we can add it the description why it works: since get_valid_cpu_types is called after accelerator initialization.

qmp_x_exit_preconfig
  + qemu_init_board
    + machine_run_board_init
      + is_cpu_type_supported

which is called after:
configure_accelerators

It was an issue with the first approach building the list before main(), so worth mentioning.

Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
---
  hw/arm/virt.c | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index c6ae7cc1705..d7197958f7c 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3134,7 +3134,7 @@ static GSList *virt_get_valid_cpu_types(const 
MachineState *ms)
  {
      GSList *vct = NULL;
-#ifdef CONFIG_TCG
+    if (tcg_enabled()) {
          vct = g_slist_prepend(vct, g_strdup(ARM_CPU_TYPE_NAME("cortex-a7")));
          vct = g_slist_prepend(vct, g_strdup(ARM_CPU_TYPE_NAME("cortex-a15")));
  #ifdef TARGET_AARCH64
@@ -3148,13 +3148,13 @@ static GSList *virt_get_valid_cpu_types(const 
MachineState *ms)
          vct = g_slist_prepend(vct, 
g_strdup(ARM_CPU_TYPE_NAME("neoverse-v1")));
          vct = g_slist_prepend(vct, 
g_strdup(ARM_CPU_TYPE_NAME("neoverse-n2")));
  #endif /* TARGET_AARCH64 */
-#endif /* CONFIG_TCG */
+    }
  #ifdef TARGET_AARCH64
          vct = g_slist_prepend(vct, g_strdup(ARM_CPU_TYPE_NAME("cortex-a53")));
          vct = g_slist_prepend(vct, g_strdup(ARM_CPU_TYPE_NAME("cortex-a57")));
-#if defined(CONFIG_KVM) || defined(CONFIG_HVF)
+        if (kvm_enabled() || hvf_enabled()) {
              vct = g_slist_prepend(vct, g_strdup(ARM_CPU_TYPE_NAME("host")));
-#endif /* CONFIG_KVM || CONFIG_HVF */
+        }
  #endif /* TARGET_AARCH64 */
      vct = g_slist_prepend(vct, g_strdup(ARM_CPU_TYPE_NAME("max")));

Reply via email to