On Tue, May 12, 2026 at 1:30 PM Daniel Henrique Barboza
<[email protected]> wrote:
>
> Use isa_edata_arr[] directly instead of going through 3 different arrays
> to populate the unavailable KVM properties.
>
> Signed-off-by: Daniel Henrique Barboza <[email protected]>

Acked-by: Alistair Francis <[email protected]>

Alistair

> ---
>  target/riscv/kvm/kvm-cpu.c | 25 ++++++++++---------------
>  1 file changed, 10 insertions(+), 15 deletions(-)
>
> diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c
> index b047ffa9c0..7f56f64d79 100644
> --- a/target/riscv/kvm/kvm-cpu.c
> +++ b/target/riscv/kvm/kvm-cpu.c
> @@ -525,20 +525,9 @@ static void riscv_cpu_add_kvm_unavail_prop(Object *obj, 
> const char *prop_name)
>                          NULL, (void *)prop_name);
>  }
>
> -static void riscv_cpu_add_kvm_unavail_prop_array(Object *obj,
> -                                        const RISCVCPUMultiExtConfig *array)
> -{
> -    const RISCVCPUMultiExtConfig *prop;
> -
> -    g_assert(array);
> -
> -    for (prop = array; prop && prop->name; prop++) {
> -        riscv_cpu_add_kvm_unavail_prop(obj, prop->name);
> -    }
> -}
> -
>  static void kvm_riscv_add_cpu_user_properties(Object *cpu_obj)
>  {
> +    const RISCVIsaExtData *edata;
>      int i;
>
>      riscv_add_satp_mode_properties(cpu_obj);
> @@ -572,9 +561,15 @@ static void kvm_riscv_add_cpu_user_properties(Object 
> *cpu_obj)
>                              NULL, multi_cfg);
>      }
>
> -    riscv_cpu_add_kvm_unavail_prop_array(cpu_obj, riscv_cpu_extensions);
> -    riscv_cpu_add_kvm_unavail_prop_array(cpu_obj, riscv_cpu_vendor_exts);
> -    riscv_cpu_add_kvm_unavail_prop_array(cpu_obj, 
> riscv_cpu_experimental_exts);
> +    /*
> +     * Mark all isa_edata_arr properties that collides with
> +     * a KVM property as unavailable.
> +     */
> +    for (edata = isa_edata_arr; edata && edata->name; edata++) {
> +        if (edata->prop_name) {
> +            riscv_cpu_add_kvm_unavail_prop(cpu_obj, edata->prop_name);
> +        }
> +    }
>
>     /* We don't have the needed KVM support for profiles */
>      for (i = 0; riscv_profiles[i] != NULL; i++) {
> --
> 2.43.0
>
>

Reply via email to