[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 09/10] target/riscv: Restrict KVM-specific fields from ArchCP
From: |
Philippe Mathieu-Daudé |
Subject: |
[RFC PATCH 09/10] target/riscv: Restrict KVM-specific fields from ArchCPU |
Date: |
Wed, 5 Apr 2023 18:04:53 +0200 |
These fields shouldn't be accessed when KVM is not available.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
RFC: The migration part is likely invalid...
kvmtimer_needed() is defined in target/riscv/machine.c as
static bool kvmtimer_needed(void *opaque)
{
return kvm_enabled();
}
which depends on a host feature.
---
target/riscv/cpu.h | 2 ++
target/riscv/machine.c | 4 ++++
2 files changed, 6 insertions(+)
diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h
index 638e47c75a..82939235ab 100644
--- a/target/riscv/cpu.h
+++ b/target/riscv/cpu.h
@@ -377,12 +377,14 @@ struct CPUArchState {
hwaddr kernel_addr;
hwaddr fdt_addr;
+#ifdef CONFIG_KVM
/* kvm timer */
bool kvm_timer_dirty;
uint64_t kvm_timer_time;
uint64_t kvm_timer_compare;
uint64_t kvm_timer_state;
uint64_t kvm_timer_frequency;
+#endif /* CONFIG_KVM */
};
OBJECT_DECLARE_CPU_TYPE(RISCVCPU, RISCVCPUClass, RISCV_CPU)
diff --git a/target/riscv/machine.c b/target/riscv/machine.c
index 9c455931d8..e45d564ec3 100644
--- a/target/riscv/machine.c
+++ b/target/riscv/machine.c
@@ -201,10 +201,12 @@ static bool kvmtimer_needed(void *opaque)
static int cpu_post_load(void *opaque, int version_id)
{
+#ifdef CONFIG_KVM
RISCVCPU *cpu = opaque;
CPURISCVState *env = &cpu->env;
env->kvm_timer_dirty = true;
+#endif
return 0;
}
@@ -215,9 +217,11 @@ static const VMStateDescription vmstate_kvmtimer = {
.needed = kvmtimer_needed,
.post_load = cpu_post_load,
.fields = (VMStateField[]) {
+#ifdef CONFIG_KVM
VMSTATE_UINT64(env.kvm_timer_time, RISCVCPU),
VMSTATE_UINT64(env.kvm_timer_compare, RISCVCPU),
VMSTATE_UINT64(env.kvm_timer_state, RISCVCPU),
+#endif
VMSTATE_END_OF_LIST()
}
};
--
2.38.1
- [PATCH 05/10] hw/arm/sbsa-ref: Include missing 'sysemu/kvm.h' header, (continued)
- [PATCH 05/10] hw/arm/sbsa-ref: Include missing 'sysemu/kvm.h' header, Philippe Mathieu-Daudé, 2023/04/05
- [PATCH 06/10] target/arm: Reduce QMP header pressure by not including 'kvm_arm.h', Philippe Mathieu-Daudé, 2023/04/05
- [PATCH 07/10] target/arm: Restrict KVM-specific fields from ArchCPU, Philippe Mathieu-Daudé, 2023/04/05
- [PATCH 08/10] target/ppc: Restrict KVM-specific field from ArchCPU, Philippe Mathieu-Daudé, 2023/04/05
- [RFC PATCH 09/10] target/riscv: Restrict KVM-specific fields from ArchCPU,
Philippe Mathieu-Daudé <=
- [PATCH 10/10] hw/s390x: Rename pv.c -> pv-kvm.c, Philippe Mathieu-Daudé, 2023/04/05