[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 04/20] Break up user and system cpu_interrupt imp
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [PATCH v2 04/20] Break up user and system cpu_interrupt implementations |
Date: |
Tue, 15 Mar 2011 12:26:15 +0100 |
Both have only two lines in common, and we will convert the system
service into a callback which is of no use for user mode operation.
Signed-off-by: Jan Kiszka <address@hidden>
CC: Riku Voipio <address@hidden>
---
exec.c | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/exec.c b/exec.c
index c5358c3..12ea582 100644
--- a/exec.c
+++ b/exec.c
@@ -1627,6 +1627,7 @@ static void cpu_unlink_tb(CPUState *env)
spin_unlock(&interrupt_lock);
}
+#ifndef CONFIG_USER_ONLY
/* mask must never be zero, except for A20 change call */
void cpu_interrupt(CPUState *env, int mask)
{
@@ -1635,7 +1636,6 @@ void cpu_interrupt(CPUState *env, int mask)
old_mask = env->interrupt_request;
env->interrupt_request |= mask;
-#ifndef CONFIG_USER_ONLY
/*
* If called from iothread context, wake the target cpu in
* case its halted.
@@ -1644,21 +1644,27 @@ void cpu_interrupt(CPUState *env, int mask)
qemu_cpu_kick(env);
return;
}
-#endif
if (use_icount) {
env->icount_decr.u16.high = 0xffff;
-#ifndef CONFIG_USER_ONLY
if (!can_do_io(env)
&& (mask & ~old_mask) != 0) {
cpu_abort(env, "Raised interrupt while not in I/O function");
}
-#endif
} else {
cpu_unlink_tb(env);
}
}
+#else /* CONFIG_USER_ONLY */
+
+void cpu_interrupt(CPUState *env, int mask)
+{
+ env->interrupt_request |= mask;
+ cpu_unlink_tb(env);
+}
+#endif /* CONFIG_USER_ONLY */
+
void cpu_reset_interrupt(CPUState *env, int mask)
{
env->interrupt_request &= ~mask;
--
1.7.1
- [Qemu-devel] Re: [PATCH v2 06/20] kvm: Install optimized interrupt handler, (continued)
[Qemu-devel] [PATCH v2 08/20] kvm: x86: Do not leave halt if interrupts are disabled, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 10/20] x86: Properly reset PAT MSR, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 07/20] kvm: Add in-kernel irqchip awareness to cpu_thread_is_idle, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 12/20] kvm: x86: Synchronize PAT MSR with the kernel, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 03/20] s390: Detect invalid invocations of qemu_ram_free/remap, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 02/20] x86: Unbreak TCG support for hardware breakpoints, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 05/20] Redirect cpu_interrupt to callback handler, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 04/20] Break up user and system cpu_interrupt implementations,
Jan Kiszka <=
[Qemu-devel] [PATCH v2 09/20] kvm: Mark VCPU state dirty on creation, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 16/20] kvm: Rework inner loop of kvm_cpu_exec, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 11/20] x86: Save/restore PAT MSR, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 20/20] Expose thread_id in info cpus, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 14/20] kvm: Keep KVM_RUN return value in separate variable, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 17/20] kvm: Align kvm_arch_handle_exit to kvm_cpu_exec changes, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 15/20] kvm: Reorder error handling of KVM_RUN, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 13/20] kvm: Consider EXIT_DEBUG unknown without CAP_SET_GUEST_DEBUG, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 19/20] kvm: x86: Push kvm_arch_debug to kvm_arch_handle_exit, Jan Kiszka, 2011/03/15
[Qemu-devel] [PATCH v2 18/20] kvm: x86: Reorder functions in kvm.c, Jan Kiszka, 2011/03/15