Message ID | 20230706101738.460804-20-dbarboza@ventanamicro.com |
---|---|
State | New |
Headers | show |
Series | target/riscv, KVM: fixes and enhancements | expand |
On Thu, Jul 6, 2023 at 8:19 PM Daniel Henrique Barboza <dbarboza@ventanamicro.com> wrote: > > There are 2 places in which we need to get a pointer to a certain > property of the cpu->cfg struct based on property offset. Next patch > will add a couple more. > > Create a helper to avoid repeating this code over and over. > > Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> > Reviewed-by: Andrew Jones <ajones@ventanamicro.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > target/riscv/kvm.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/target/riscv/kvm.c b/target/riscv/kvm.c > index ba940e570e..cfeab5a4c0 100644 > --- a/target/riscv/kvm.c > +++ b/target/riscv/kvm.c > @@ -215,11 +215,15 @@ static KVMCPUConfig kvm_multi_ext_cfgs[] = { > KVM_EXT_CFG("svpbmt", ext_svpbmt, KVM_RISCV_ISA_EXT_SVPBMT), > }; > > +static void *kvmconfig_get_cfg_addr(RISCVCPU *cpu, KVMCPUConfig *kvmcfg) > +{ > + return (void *)&cpu->cfg + kvmcfg->offset; > +} > + > static void kvm_cpu_cfg_set(RISCVCPU *cpu, KVMCPUConfig *multi_ext, > uint32_t val) > { > - int cpu_cfg_offset = multi_ext->offset; > - bool *ext_enabled = (void *)&cpu->cfg + cpu_cfg_offset; > + bool *ext_enabled = kvmconfig_get_cfg_addr(cpu, multi_ext); > > *ext_enabled = val; > } > @@ -227,8 +231,7 @@ static void kvm_cpu_cfg_set(RISCVCPU *cpu, KVMCPUConfig *multi_ext, > static uint32_t kvm_cpu_cfg_get(RISCVCPU *cpu, > KVMCPUConfig *multi_ext) > { > - int cpu_cfg_offset = multi_ext->offset; > - bool *ext_enabled = (void *)&cpu->cfg + cpu_cfg_offset; > + bool *ext_enabled = kvmconfig_get_cfg_addr(cpu, multi_ext); > > return *ext_enabled; > } > -- > 2.41.0 > >
diff --git a/target/riscv/kvm.c b/target/riscv/kvm.c index ba940e570e..cfeab5a4c0 100644 --- a/target/riscv/kvm.c +++ b/target/riscv/kvm.c @@ -215,11 +215,15 @@ static KVMCPUConfig kvm_multi_ext_cfgs[] = { KVM_EXT_CFG("svpbmt", ext_svpbmt, KVM_RISCV_ISA_EXT_SVPBMT), }; +static void *kvmconfig_get_cfg_addr(RISCVCPU *cpu, KVMCPUConfig *kvmcfg) +{ + return (void *)&cpu->cfg + kvmcfg->offset; +} + static void kvm_cpu_cfg_set(RISCVCPU *cpu, KVMCPUConfig *multi_ext, uint32_t val) { - int cpu_cfg_offset = multi_ext->offset; - bool *ext_enabled = (void *)&cpu->cfg + cpu_cfg_offset; + bool *ext_enabled = kvmconfig_get_cfg_addr(cpu, multi_ext); *ext_enabled = val; } @@ -227,8 +231,7 @@ static void kvm_cpu_cfg_set(RISCVCPU *cpu, KVMCPUConfig *multi_ext, static uint32_t kvm_cpu_cfg_get(RISCVCPU *cpu, KVMCPUConfig *multi_ext) { - int cpu_cfg_offset = multi_ext->offset; - bool *ext_enabled = (void *)&cpu->cfg + cpu_cfg_offset; + bool *ext_enabled = kvmconfig_get_cfg_addr(cpu, multi_ext); return *ext_enabled; }