@samitouri / QOSamiQemu / commits / acd8f9daa1

target/riscv/tcg: use cfg_offset as cpu_set_multi_ext cb opaque

The cpu_get_multi_ext_cfg/cpu_set_multi_ext_cfg callbacks are using a RISCVCPUMultiExtConfig pointer as opaque, but internally we're just using multi_ext_cfg->offset. Use multi_ext_cfg->offset as opaque instead. Signed-off-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com> Acked-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20260512032926.1978818-12-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 acd8f9daa1960ab1fad6376ab43a7a7accb19751
1 file changed +8 -8
target/riscv/tcg/tcg-cpu.c
+8 -8
@@ -1510,8 +1510,8 @@ static void riscv_cpu_add_profiles(Object *cpu_obj)
1510 static void cpu_set_multi_ext_cfg(Object *obj, Visitor *v, const char *name,
1511 void *opaque, Error **errp)
1512 {
1513 - const RISCVCPUMultiExtConfig *multi_ext_cfg = opaque;
1513 RISCVCPU *cpu = RISCV_CPU(obj);
1514 + uint32_t cfg_offset = *(uint32_t *)opaque;
1515 bool vendor_cpu = riscv_cpu_is_vendor(obj);
1516 bool prev_val, value;
1517
@@ -1519,9 +1519,9 @@ static void cpu_set_multi_ext_cfg(Object *obj, Visitor *v, const char *name,
1519 return;
1520 }
1521
1522 - cpu_cfg_ext_add_user_opt(multi_ext_cfg->offset, value);
1522 + cpu_cfg_ext_add_user_opt(cfg_offset, value);
1523
1524 - prev_val = isa_ext_is_enabled(cpu, multi_ext_cfg->offset);
1524 + prev_val = isa_ext_is_enabled(cpu, cfg_offset);
1525
1526 if (value == prev_val) {
1527 return;
@@ -1535,17 +1535,17 @@ static void cpu_set_multi_ext_cfg(Object *obj, Visitor *v, const char *name,
1535 }
1536
1537 if (value) {
1538 - cpu_bump_multi_ext_priv_ver(&cpu->env, multi_ext_cfg->offset);
1538 + cpu_bump_multi_ext_priv_ver(&cpu->env, cfg_offset);
1539 }
1540
1541 - isa_ext_update_enabled(cpu, multi_ext_cfg->offset, value);
1541 + isa_ext_update_enabled(cpu, cfg_offset, value);
1542 }
1543
1544 static void cpu_get_multi_ext_cfg(Object *obj, Visitor *v, const char *name,
1545 void *opaque, Error **errp)
1546 {
1547 - const RISCVCPUMultiExtConfig *multi_ext_cfg = opaque;
1548 - bool value = isa_ext_is_enabled(RISCV_CPU(obj), multi_ext_cfg->offset);
1547 + uint32_t cfg_offset = *(uint32_t *)opaque;
1548 + bool value = isa_ext_is_enabled(RISCV_CPU(obj), cfg_offset);
1549
1550 visit_type_bool(v, name, &value, errp);
1551 }
@@ -1558,7 +1558,7 @@ static void cpu_add_multi_ext_prop(Object *cpu_obj,
1558 object_property_add(cpu_obj, multi_cfg->name, "bool",
1559 cpu_get_multi_ext_cfg,
1560 cpu_set_multi_ext_cfg,
1561 - NULL, (void *)multi_cfg);
1561 + NULL, (void *)&multi_cfg->offset);
1562
1563 if (!generic_cpu) {
1564 return;