Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=02e235bc8eebf8a6fef10d46479b3c18f3e9c4f2
Commit:     02e235bc8eebf8a6fef10d46479b3c18f3e9c4f2
Parent:     c21415e84334af679630f6450ceb8929a5234fad
Author:     Avi Kivity <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 19 14:37:47 2007 +0200
Committer:  Avi Kivity <[EMAIL PROTECTED]>
CommitDate: Sun Mar 4 11:12:41 2007 +0200

    KVM: Add hypercall host support for svm
    
    Signed-off-by: Avi Kivity <[EMAIL PROTECTED]>
---
 drivers/kvm/svm.c |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/drivers/kvm/svm.c b/drivers/kvm/svm.c
index f6e8652..aaa6742 100644
--- a/drivers/kvm/svm.c
+++ b/drivers/kvm/svm.c
@@ -1076,6 +1076,20 @@ static int halt_interception(struct kvm_vcpu *vcpu, 
struct kvm_run *kvm_run)
        return 0;
 }
 
+static int vmmcall_interception(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
+{
+       printk(KERN_DEBUG "got vmmcall at RIP %08llx\n",
+              vcpu->svm->vmcb->save.rip);
+       printk(KERN_DEBUG "vmmcall params: %08llx, %08lx, %08lx, %08lx\n",
+              vcpu->svm->vmcb->save.rax,
+              vcpu->regs[VCPU_REGS_RCX],
+              vcpu->regs[VCPU_REGS_RDX],
+              vcpu->regs[VCPU_REGS_RBP]);
+       vcpu->svm->vmcb->save.rax = 0;
+       vcpu->svm->vmcb->save.rip += 3;
+       return 1;
+}
+
 static int invalid_op_interception(struct kvm_vcpu *vcpu, struct kvm_run 
*kvm_run)
 {
        inject_ud(vcpu);
@@ -1276,7 +1290,7 @@ static int (*svm_exit_handlers[])(struct kvm_vcpu *vcpu,
        [SVM_EXIT_TASK_SWITCH]                  = task_switch_interception,
        [SVM_EXIT_SHUTDOWN]                     = shutdown_interception,
        [SVM_EXIT_VMRUN]                        = invalid_op_interception,
-       [SVM_EXIT_VMMCALL]                      = invalid_op_interception,
+       [SVM_EXIT_VMMCALL]                      = vmmcall_interception,
        [SVM_EXIT_VMLOAD]                       = invalid_op_interception,
        [SVM_EXIT_VMSAVE]                       = invalid_op_interception,
        [SVM_EXIT_STGI]                         = invalid_op_interception,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to