Commit 724d19e6f1 for qemu.org
commit 724d19e6f1f67b6c890db4418faa3a199252d6c0
Author: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Date: Tue Sep 22 13:39:35 2026 +0200
target/s390x: Use s390_cpu_get_state() consistently
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é <philmd@oss.qualcomm.com>
Reviewed-by: Eric Farman <farman@linux.ibm.com>
Message-Id: <20260923171116.31276-3-philmd@oss.qualcomm.com>
diff --git a/target/s390x/cpu-system.c b/target/s390x/cpu-system.c
index cc9685221a..c938c77d0b 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 7c725b8a4a..85afc5dec9 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 b34a912714..6622886032 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 f714834a98..b44fba43f1 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);
}