@@ -415,7 +415,6 @@ struct CPUState {
/* Accelerator-specific fields. */
struct AccelvCPUState *accel_vcpu;
- struct KVMState *kvm_state;
struct kvm_run *kvm_run;
int hvf_fd;
/* shared by kvm, hax and hvf */
@@ -18,6 +18,7 @@ struct AccelvCPUState {
* @kvm_fd: vCPU file descriptor for KVM
*/
int kvm_fd;
+ struct KVMState *kvm_state;
};
typedef struct KVMSlot
@@ -437,7 +437,7 @@ int kvm_init_vcpu(CPUState *cpu, Error **errp)
cpu->accel_vcpu = g_new(struct AccelvCPUState, 1);
cpu->accel_vcpu->kvm_fd = ret;
- cpu->kvm_state = s;
+ cpu->accel_vcpu->kvm_state = s;
cpu->vcpu_dirty = true;
mmap_size = kvm_ioctl(s, KVM_GET_VCPU_MMAP_SIZE, 0);
@@ -1985,7 +1985,7 @@ bool kvm_vcpu_id_is_valid(int vcpu_id)
KVMState *kvm_vcpu_state(CPUState *cpu)
{
- return cpu->kvm_state;
+ return cpu->accel_vcpu->kvm_state;
}
static int kvm_init(MachineState *ms)
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- include/hw/core/cpu.h | 1 - include/sysemu/kvm_int.h | 1 + accel/kvm/kvm-all.c | 4 ++-- 3 files changed, 3 insertions(+), 3 deletions(-)