summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/qemu/files/qemu-2.4-mips-wake-up-on-irq.patch')
-rw-r--r--app-emulation/qemu/files/qemu-2.4-mips-wake-up-on-irq.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/app-emulation/qemu/files/qemu-2.4-mips-wake-up-on-irq.patch b/app-emulation/qemu/files/qemu-2.4-mips-wake-up-on-irq.patch
new file mode 100644
index 000000000000..559a4afdb0d8
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-2.4-mips-wake-up-on-irq.patch
@@ -0,0 +1,29 @@
+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;
+ }
+ }