From: "Emilio G. Cota" <cota@braap.org>
Cc: David Gibson <david@gibson.dropbear.id.au>
Cc: qemu-ppc@nongnu.org
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Emilio G. Cota <cota@braap.org>
[RF: Minor adjustment for new code in hvf_inject_interrupts]
Signed-off-by: Robert Foley <robert.foley@linaro.org>
---
hw/ppc/ppc.c | 2 +-
target/i386/hvf/x86hvf.c | 1 -
target/ppc/kvm.c | 2 +-
target/ppc/translate_init.inc.c | 14 +++++++-------
4 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c
index 0e7386ff88..89f92c4a88 100644
--- a/hw/ppc/ppc.c
+++ b/hw/ppc/ppc.c
@@ -89,7 +89,7 @@ void ppc_set_irq(PowerPCCPU *cpu, int n_IRQ, int level)
LOG_IRQ("%s: %p n_IRQ %d level %d => pending %08" PRIx32
"req %08x\n", __func__, env, n_IRQ, level,
- env->pending_interrupts, CPU(cpu)->interrupt_request);
+ env->pending_interrupts, cpu_interrupt_request(CPU(cpu)));
if (locked) {
qemu_mutex_unlock_iothread();
diff --git a/target/i386/hvf/x86hvf.c b/target/i386/hvf/x86hvf.c
index 892ae0e99a..68175074e4 100644
--- a/target/i386/hvf/x86hvf.c
+++ b/target/i386/hvf/x86hvf.c
@@ -352,7 +352,6 @@ bool hvf_inject_interrupts(CPUState *cpu_state)
uint8_t vector;
uint64_t intr_type;
- uint32_t interrupt_request;
bool have_event = true;
if (env->interrupt_injected != -1) {
vector = env->interrupt_injected;
diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
index 13c6626ca7..c737b19242 100644
--- a/target/ppc/kvm.c
+++ b/target/ppc/kvm.c
@@ -1348,7 +1348,7 @@ static int kvmppc_handle_halt(PowerPCCPU *cpu)
CPUState *cs = CPU(cpu);
CPUPPCState *env = &cpu->env;
- if (!(cs->interrupt_request & CPU_INTERRUPT_HARD) && (msr_ee)) {
+ if (!(cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD) && (msr_ee)) {
cpu_halted_set(cs, 1);
cs->exception_index = EXCP_HLT;
}
diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c
index 5c2f8ffa4a..8d2e668ac5 100644
--- a/target/ppc/translate_init.inc.c
+++ b/target/ppc/translate_init.inc.c
@@ -8540,7 +8540,7 @@ static bool cpu_has_work_POWER7(CPUState *cs)
CPUPPCState *env = &cpu->env;
if (cpu_halted(cs)) {
- if (!(cs->interrupt_request & CPU_INTERRUPT_HARD)) {
+ if (!(cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD)) {
return false;
}
if ((env->pending_interrupts & (1u << PPC_INTERRUPT_EXT)) &&
@@ -8564,7 +8564,7 @@ static bool cpu_has_work_POWER7(CPUState *cs)
}
return false;
} else {
- return msr_ee && (cs->interrupt_request & CPU_INTERRUPT_HARD);
+ return msr_ee && (cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD);
}
}
@@ -8702,7 +8702,7 @@ static bool cpu_has_work_POWER8(CPUState *cs)
CPUPPCState *env = &cpu->env;
if (cpu_halted(cs)) {
- if (!(cs->interrupt_request & CPU_INTERRUPT_HARD)) {
+ if (!(cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD)) {
return false;
}
if ((env->pending_interrupts & (1u << PPC_INTERRUPT_EXT)) &&
@@ -8734,7 +8734,7 @@ static bool cpu_has_work_POWER8(CPUState *cs)
}
return false;
} else {
- return msr_ee && (cs->interrupt_request & CPU_INTERRUPT_HARD);
+ return msr_ee && (cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD);
}
}
@@ -8904,7 +8904,7 @@ static bool cpu_has_work_POWER9(CPUState *cs)
if (cpu_halted(cs)) {
uint64_t psscr = env->spr[SPR_PSSCR];
- if (!(cs->interrupt_request & CPU_INTERRUPT_HARD)) {
+ if (!(cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD)) {
return false;
}
@@ -8950,7 +8950,7 @@ static bool cpu_has_work_POWER9(CPUState *cs)
}
return false;
} else {
- return msr_ee && (cs->interrupt_request & CPU_INTERRUPT_HARD);
+ return msr_ee && (cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD);
}
}
@@ -10660,7 +10660,7 @@ static bool ppc_cpu_has_work(CPUState *cs)
PowerPCCPU *cpu = POWERPC_CPU(cs);
CPUPPCState *env = &cpu->env;
- return msr_ee && (cs->interrupt_request & CPU_INTERRUPT_HARD);
+ return msr_ee && (cpu_interrupt_request(cs) & CPU_INTERRUPT_HARD);
}
static void ppc_cpu_reset(DeviceState *dev)
--
2.17.1