Replace direct reads of env::cpu_state with s390_cpu_get_state(). This keeps CPU state reads consistent across CPU transitions.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]> --- target/s390x/cpu-system.c | 2 +- target/s390x/cpu.c | 2 +- target/s390x/kvm/kvm.c | 2 +- target/s390x/machine.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/target/s390x/cpu-system.c b/target/s390x/cpu-system.c index cc9685221ae..c938c77d0bd 100644 --- a/target/s390x/cpu-system.c +++ b/target/s390x/cpu-system.c @@ -263,7 +263,7 @@ unsigned int s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu) cpu_state); exit(1); } - if (kvm_enabled() && cpu->env.cpu_state != cpu_state) { + if (kvm_enabled() && s390_cpu_get_state(cpu) != cpu_state) { kvm_s390_set_cpu_state(cpu, cpu_state); } cpu->env.cpu_state = cpu_state; diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index 7c725b8a4a4..85afc5dec9a 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -130,7 +130,7 @@ static void s390_query_cpu_fast(CPUState *cpu, CpuInfoFast *value) { S390CPU *s390_cpu = S390_CPU(cpu); - value->u.s390x.cpu_state = s390_cpu->env.cpu_state; + value->u.s390x.cpu_state = s390_cpu_get_state(s390_cpu); #if !defined(CONFIG_USER_ONLY) if (s390_has_topology()) { value->u.s390x.has_dedicated = true; diff --git a/target/s390x/kvm/kvm.c b/target/s390x/kvm/kvm.c index b34a9127141..6622886032e 100644 --- a/target/s390x/kvm/kvm.c +++ b/target/s390x/kvm/kvm.c @@ -407,7 +407,7 @@ int kvm_arch_init_vcpu(CPUState *cs) { unsigned int max_cpus = MACHINE(qdev_get_machine())->smp.max_cpus; S390CPU *cpu = S390_CPU(cs); - kvm_s390_set_cpu_state(cpu, cpu->env.cpu_state); + kvm_s390_set_cpu_state(cpu, s390_cpu_get_state(cpu)); cpu->irqstate = g_malloc0(VCPU_IRQ_BUF_SIZE(max_cpus)); return 0; } diff --git a/target/s390x/machine.c b/target/s390x/machine.c index f714834a98a..b44fba43f14 100644 --- a/target/s390x/machine.c +++ b/target/s390x/machine.c @@ -32,7 +32,7 @@ static int cpu_post_load(void *opaque, int version_id) * than via cpu_synchronize_state, we need update kvm here. */ if (kvm_enabled()) { - kvm_s390_set_cpu_state(cpu, cpu->env.cpu_state); + kvm_s390_set_cpu_state(cpu, s390_cpu_get_state(cpu)); return kvm_s390_vcpu_interrupt_post_load(cpu); } -- 2.53.0
