[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 02/23] cpu-exec.c: Allow disabling of IRQs on ARM Cor
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PULL 02/23] cpu-exec.c: Allow disabling of IRQs on ARM Cortex-M CPUs |
Date: |
Fri, 12 Sep 2014 14:23:33 +0100 |
From: David Hoover <address@hidden>
Correct an error in the logic for deciding whether we can
take an IRQ interrupt which meant that on M profile cores
it was never possible to disable them.
The design here is still bogus in that M profile doesn't
have separate "IRQ" and "FIQ", which are an A/R profile
concept; we should ideally implement the proper priority
based scheme.
Signed-off-by: David Hoover <address@hidden>
[PMM: Wrote a proper commit message]
Signed-off-by: Peter Maydell <address@hidden>
---
cpu-exec.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cpu-exec.c b/cpu-exec.c
index 7b5d2e2..e9adf56 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -618,8 +618,8 @@ int cpu_exec(CPUArchState *env)
We avoid this by disabling interrupts when
pc contains a magic address. */
if (interrupt_request & CPU_INTERRUPT_HARD
- && ((IS_M(env) && env->regs[15] < 0xfffffff0)
- || !(env->daif & PSTATE_I))) {
+ && !(env->daif & PSTATE_I)
+ && (!IS_M(env) || env->regs[15] < 0xfffffff0)) {
cpu->exception_index = EXCP_IRQ;
cc->do_interrupt(cpu);
next_tb = 0;
--
1.9.1
- [Qemu-devel] [PULL 06/23] hw/arm/virt: Provide flash devices for boot ROMs, (continued)
- [Qemu-devel] [PULL 06/23] hw/arm/virt: Provide flash devices for boot ROMs, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 12/23] target-arm: Move extended_addresses_enabled() to internals.h, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 20/23] hw/arm/boot: load DTB as a ROM image, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 01/23] hw/arm/virt: add linux, stdout-path to /chosen DT node, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 08/23] exec.c: Provide full set of dummy wp remove functions in user-mode, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 21/23] hw/arm/boot: pass an address limit to and return size from load_dtb(), Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 03/23] pl061: implement input interrupt logic, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 04/23] target-arm: Fix resetting issues on ARMv7-M CPUs, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 13/23] target-arm: Implement handling of fired watchpoints, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 22/23] hw/arm/boot: load device tree to base of DRAM if no -kernel option was passed, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 02/23] cpu-exec.c: Allow disabling of IRQs on ARM Cortex-M CPUs,
Peter Maydell <=
- Re: [Qemu-devel] [PULL 00/23] target-arm queue, Peter Maydell, 2014/09/12