From: Rob Herring <robherring2@gmail.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Rob Herring <rob.herring@linaro.org>,
Peter Crosthwaite <peter.crosthwaite@xilinx.com>,
qemu-devel@nongnu.org,
Christoffer Dall <christoffer.dall@linaro.org>
Subject: [Qemu-devel] [PATCH v2 1/6] target-arm: don't set cpu do_interrupt handler for user mode emulation
Date: Thu, 22 May 2014 21:30:04 -0500 [thread overview]
Message-ID: <1400812209-26743-2-git-send-email-robherring2@gmail.com> (raw)
In-Reply-To: <1400812209-26743-1-git-send-email-robherring2@gmail.com>
From: Rob Herring <rob.herring@linaro.org>
In preparation to add system mode only calls to
aarch64_cpu_do_interrupt, compile it for system mode only and don't set
the do_interrupt callback for user mode emulation. User mode emulation
should never get interrupts and thus should not have a exception handler
function. Do the same change from AArch32 to keep them aligned.
Signed-off-by: Rob Herring <rob.herring@linaro.org>
---
v2:
- Only set .do_interrupt function for system emulation on A32 and A64.
target-arm/cpu.c | 2 +-
target-arm/cpu64.c | 2 ++
target-arm/helper-a64.c | 3 +++
target-arm/helper.c | 5 -----
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index 589f34d..f46b375 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -1038,7 +1038,6 @@ static void arm_cpu_class_init(ObjectClass *oc, void *data)
cc->class_by_name = arm_cpu_class_by_name;
cc->has_work = arm_cpu_has_work;
- cc->do_interrupt = arm_cpu_do_interrupt;
cc->dump_state = arm_cpu_dump_state;
cc->set_pc = arm_cpu_set_pc;
cc->gdb_read_register = arm_cpu_gdb_read_register;
@@ -1046,6 +1045,7 @@ static void arm_cpu_class_init(ObjectClass *oc, void *data)
#ifdef CONFIG_USER_ONLY
cc->handle_mmu_fault = arm_cpu_handle_mmu_fault;
#else
+ cc->do_interrupt = arm_cpu_do_interrupt;
cc->get_phys_page_debug = arm_cpu_get_phys_page_debug;
cc->vmsd = &vmstate_arm_cpu;
#endif
diff --git a/target-arm/cpu64.c b/target-arm/cpu64.c
index 8daa622..b155579 100644
--- a/target-arm/cpu64.c
+++ b/target-arm/cpu64.c
@@ -187,7 +187,9 @@ static void aarch64_cpu_class_init(ObjectClass *oc, void *data)
{
CPUClass *cc = CPU_CLASS(oc);
+#if !defined(CONFIG_USER_ONLY)
cc->do_interrupt = aarch64_cpu_do_interrupt;
+#endif
cc->set_pc = aarch64_cpu_set_pc;
cc->gdb_read_register = aarch64_cpu_gdb_read_register;
cc->gdb_write_register = aarch64_cpu_gdb_write_register;
diff --git a/target-arm/helper-a64.c b/target-arm/helper-a64.c
index bf921cc..84411b4 100644
--- a/target-arm/helper-a64.c
+++ b/target-arm/helper-a64.c
@@ -438,6 +438,8 @@ float32 HELPER(fcvtx_f64_to_f32)(float64 a, CPUARMState *env)
return r;
}
+#if !defined(CONFIG_USER_ONLY)
+
/* Handle a CPU exception. */
void aarch64_cpu_do_interrupt(CPUState *cs)
{
@@ -512,3 +514,4 @@ void aarch64_cpu_do_interrupt(CPUState *cs)
env->pc = addr;
cs->interrupt_request |= CPU_INTERRUPT_EXITTB;
}
+#endif
diff --git a/target-arm/helper.c b/target-arm/helper.c
index 417161e..1307473 100644
--- a/target-arm/helper.c
+++ b/target-arm/helper.c
@@ -3004,11 +3004,6 @@ uint32_t HELPER(rbit)(uint32_t x)
#if defined(CONFIG_USER_ONLY)
-void arm_cpu_do_interrupt(CPUState *cs)
-{
- cs->exception_index = -1;
-}
-
int arm_cpu_handle_mmu_fault(CPUState *cs, vaddr address, int rw,
int mmu_idx)
{
--
1.9.1
next prev parent reply other threads:[~2014-05-23 2:31 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-23 2:30 [Qemu-devel] [PATCH v2 0/6] ARM: add PSCI emulation support Rob Herring
2014-05-23 2:30 ` Rob Herring [this message]
2014-06-03 15:02 ` [Qemu-devel] [PATCH v2 1/6] target-arm: don't set cpu do_interrupt handler for user mode emulation Peter Maydell
2014-05-23 2:30 ` [Qemu-devel] [PATCH v2 2/6] target-arm: add powered off cpu state Rob Herring
2014-06-03 14:45 ` Peter Maydell
2014-05-23 2:30 ` [Qemu-devel] [PATCH v2 3/6] target-arm: add hvc and smc exception emulation handling infrastructure Rob Herring
2014-05-26 4:25 ` Edgar E. Iglesias
2014-05-26 8:35 ` Peter Maydell
2014-06-03 14:44 ` Peter Maydell
2014-05-23 2:30 ` [Qemu-devel] [PATCH v2 4/6] target-arm: add emulation of PSCI calls for system emulation Rob Herring
2014-06-03 11:14 ` Peter Maydell
2014-06-04 10:09 ` Rob Herring
2014-06-04 10:16 ` Peter Maydell
2014-05-23 2:30 ` [Qemu-devel] [PATCH v2 5/6] arm/virt: enable PSCI emulation support " Rob Herring
2014-06-03 14:43 ` Peter Maydell
2014-05-23 2:30 ` [Qemu-devel] [PATCH v2 6/6] arm/highbank: enable PSCI emulation support Rob Herring
2014-06-03 14:42 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1400812209-26743-2-git-send-email-robherring2@gmail.com \
--to=robherring2@gmail.com \
--cc=christoffer.dall@linaro.org \
--cc=peter.crosthwaite@xilinx.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rob.herring@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.