diff mbox

move hlt exit to arch-specific code, and use upstream version.

Message ID 1256066132-13801-1-git-send-email-glommer@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Glauber Costa Oct. 20, 2009, 7:15 p.m. UTC
None
diff mbox

Patch

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;