@samitouri / QOSamiQemu / commits / d47431b3e1

target/riscv/kvm: use isa_edata_arr[] for unavailable props

Use isa_edata_arr[] directly instead of going through 3 different arrays to populate the unavailable KVM properties. Signed-off-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com> Acked-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20260512032926.1978818-10-daniel.barboza@oss.qualcomm.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

Daniel Henrique Barboza committed May 12, 2026 at 00:29 UTC d47431b3e145ddee9c02f04c05f31a266f1dae4b
1 file changed +10 -15
target/riscv/kvm/kvm-cpu.c
+10 -15
@@ -535,20 +535,9 @@ static void riscv_cpu_add_kvm_unavail_prop(Object *obj, const char *prop_name)
535 NULL, (void *)prop_name);
536 }
537
538 -static void riscv_cpu_add_kvm_unavail_prop_array(Object *obj,
539 - const RISCVCPUMultiExtConfig *array)
540 -{
541 - const RISCVCPUMultiExtConfig *prop;
542 -
543 - g_assert(array);
544 -
545 - for (prop = array; prop && prop->name; prop++) {
546 - riscv_cpu_add_kvm_unavail_prop(obj, prop->name);
547 - }
548 -}
549 -
538 static void kvm_riscv_add_cpu_user_properties(Object *cpu_obj)
539 {
540 + const RISCVIsaExtData *edata;
541 int i;
542
543 riscv_add_satp_mode_properties(cpu_obj);
@@ -582,9 +571,15 @@ static void kvm_riscv_add_cpu_user_properties(Object *cpu_obj)
571 NULL, multi_cfg);
572 }
573
585 - riscv_cpu_add_kvm_unavail_prop_array(cpu_obj, riscv_cpu_extensions);
586 - riscv_cpu_add_kvm_unavail_prop_array(cpu_obj, riscv_cpu_vendor_exts);
587 - riscv_cpu_add_kvm_unavail_prop_array(cpu_obj, riscv_cpu_experimental_exts);
574 + /*
575 + * Mark all isa_edata_arr properties that collides with
576 + * a KVM property as unavailable.
577 + */
578 + for (edata = isa_edata_arr; edata && edata->name; edata++) {
579 + if (edata->prop_name) {
580 + riscv_cpu_add_kvm_unavail_prop(cpu_obj, edata->prop_name);
581 + }
582 + }
583
584 /* We don't have the needed KVM support for profiles */
585 for (i = 0; riscv_profiles[i] != NULL; i++) {