Kernel KVM virtualization development
 help / color / mirror / Atom feed
* [PATCH] move hlt exit to arch-specific code, and use upstream version.
@ 2009-10-20 19:15 Glauber Costa
  2009-10-20 19:47 ` Gleb Natapov
  0 siblings, 1 reply; 4+ messages in thread
From: Glauber Costa @ 2009-10-20 19:15 UTC (permalink / raw)
  To: kvm; +Cc: avi

HLT exit calls directly an arch-specific function. Furthermore,
upstream qemu already places it on arch specific code, so let's follow it.

The function that handles halt itself is almost equal between them. So
let's use it.

Signed-off-by: Glauber Costa <glommer@redhat.com>
---
 qemu-kvm-x86.c    |   14 +++-----------
 qemu-kvm.c        |    3 ---
 target-i386/kvm.c |    2 ++
 3 files changed, 5 insertions(+), 14 deletions(-)

diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c
index c1d0ae9..6573dc5 100644
--- a/qemu-kvm-x86.c
+++ b/qemu-kvm-x86.c
@@ -199,6 +199,9 @@ int kvm_arch_run(CPUState *env)
 			r = kvm_handle_tpr_access(env);
 			break;
 #endif
+        case KVM_EXIT_HLT:
+            r = kvm_handle_halt(env);
+            break;
 		default:
 			r = 1;
 			break;
@@ -1377,17 +1380,6 @@ int kvm_arch_init_vcpu(CPUState *cenv)
     return 0;
 }
 
-int kvm_arch_halt(CPUState *env)
-{
-
-    if (!((env->interrupt_request & CPU_INTERRUPT_HARD) &&
-	  (env->eflags & IF_MASK)) &&
-	!(env->interrupt_request & CPU_INTERRUPT_NMI)) {
-            env->halted = 1;
-    }
-    return 1;
-}
-
 void kvm_arch_pre_kvm_run(void *opaque, CPUState *env)
 {
     if (!kvm_irqchip_in_kernel())
diff --git a/qemu-kvm.c b/qemu-kvm.c
index b8ae4d8..42ead38 100644
--- a/qemu-kvm.c
+++ b/qemu-kvm.c
@@ -1002,9 +1002,6 @@ int kvm_run(CPUState *env)
         case KVM_EXIT_MMIO:
             r = handle_mmio(env);
             break;
-        case KVM_EXIT_HLT:
-            r = kvm_arch_halt(env);
-            break;
         case KVM_EXIT_IRQ_WINDOW_OPEN:
             break;
         case KVM_EXIT_SHUTDOWN:
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 1cf0dc3..de10ef1 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -761,6 +761,7 @@ int kvm_arch_post_run(CPUState *env, struct kvm_run *run)
 
     return 0;
 }
+#endif
 
 static int kvm_handle_halt(CPUState *env)
 {
@@ -775,6 +776,7 @@ static int kvm_handle_halt(CPUState *env)
     return 1;
 }
 
+#ifdef KVM_UPSTREAM
 int kvm_arch_handle_exit(CPUState *env, struct kvm_run *run)
 {
     int ret = 0;
-- 
1.6.2.5


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-10-20 20:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-20 19:15 [PATCH] move hlt exit to arch-specific code, and use upstream version Glauber Costa
2009-10-20 19:47 ` Gleb Natapov
2009-10-20 19:56   ` Glauber Costa
2009-10-20 20:05     ` Gleb Natapov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox