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é <philmd@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")));
>