From: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>
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>
---
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 34f60bd80c..17ba38403a 100644
--- a/target/riscv/kvm/kvm-cpu.c
+++ b/target/riscv/kvm/kvm-cpu.c
@@ -535,20 +535,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);
@@ -582,9 +571,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.53.0