30 lines
1.2 KiB
Diff
30 lines
1.2 KiB
Diff
Pending upstream inclusion
|
|
|
|
Link: https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg03572.html
|
|
Patchwork: https://patchwork.ozlabs.org/patch/517391/
|
|
X-Gentoo-Bug: 563162
|
|
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=563162
|
|
|
|
Signed-off-by: Markos Chandras <hwoarang@gentoo.org>
|
|
diff --git a/target-mips/cpu.c b/target-mips/cpu.c
|
|
index 144eea9..cbeca04 100644
|
|
--- a/target-mips/cpu.c
|
|
+++ b/target-mips/cpu.c
|
|
@@ -53,12 +53,13 @@ static bool mips_cpu_has_work(CPUState *cs)
|
|
CPUMIPSState *env = &cpu->env;
|
|
bool has_work = false;
|
|
|
|
- /* It is implementation dependent if non-enabled interrupts
|
|
- wake-up the CPU, however most of the implementations only
|
|
+ /* Prior to MIPS Release 6 it is implementation dependent if non-enabled
|
|
+ interrupts wake-up the CPU, however most of the implementations only
|
|
check for interrupts that can be taken. */
|
|
if ((cs->interrupt_request & CPU_INTERRUPT_HARD) &&
|
|
cpu_mips_hw_interrupts_pending(env)) {
|
|
- if (cpu_mips_hw_interrupts_enabled(env)) {
|
|
+ if (cpu_mips_hw_interrupts_enabled(env) ||
|
|
+ (env->insn_flags & ISA_MIPS32R6)) {
|
|
has_work = true;
|
|
}
|
|
}
|