From: Zhang Xiantao <[EMAIL PROTECTED]>
Date: Fri, 14 Dec 2007 09:28:42 +0800
Subject: [PATCH] kvm: portability: Moving emulate_ctxt to kvm_vcpu_arch.

This patches moves emulate_ctxt to arch.
Signed-off-by: Zhang Xiantao <[EMAIL PROTECTED]>
---
 drivers/kvm/x86.c |   36 ++++++++++++++++++------------------
 drivers/kvm/x86.h |    6 +++---
 2 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/drivers/kvm/x86.c b/drivers/kvm/x86.c
index 1333103..909977f 100644
--- a/drivers/kvm/x86.c
+++ b/drivers/kvm/x86.c
@@ -1791,36 +1791,36 @@ int emulate_instruction(struct kvm_vcpu *vcpu,
                int cs_db, cs_l;
                kvm_x86_ops->get_cs_db_l_bits(vcpu, &cs_db, &cs_l);
 
-               vcpu->emulate_ctxt.vcpu = vcpu;
-               vcpu->emulate_ctxt.eflags =
kvm_x86_ops->get_rflags(vcpu);
-               vcpu->emulate_ctxt.mode =
-                       (vcpu->emulate_ctxt.eflags & X86_EFLAGS_VM)
+               vcpu->arch.emulate_ctxt.vcpu = vcpu;
+               vcpu->arch.emulate_ctxt.eflags =
kvm_x86_ops->get_rflags(vcpu);
+               vcpu->arch.emulate_ctxt.mode =
+                       (vcpu->arch.emulate_ctxt.eflags & X86_EFLAGS_VM)
                        ? X86EMUL_MODE_REAL : cs_l
                        ? X86EMUL_MODE_PROT64 : cs_db
                        ? X86EMUL_MODE_PROT32 : X86EMUL_MODE_PROT16;
 
-               if (vcpu->emulate_ctxt.mode == X86EMUL_MODE_PROT64) {
-                       vcpu->emulate_ctxt.cs_base = 0;
-                       vcpu->emulate_ctxt.ds_base = 0;
-                       vcpu->emulate_ctxt.es_base = 0;
-                       vcpu->emulate_ctxt.ss_base = 0;
+               if (vcpu->arch.emulate_ctxt.mode == X86EMUL_MODE_PROT64)
{
+                       vcpu->arch.emulate_ctxt.cs_base = 0;
+                       vcpu->arch.emulate_ctxt.ds_base = 0;
+                       vcpu->arch.emulate_ctxt.es_base = 0;
+                       vcpu->arch.emulate_ctxt.ss_base = 0;
                } else {
-                       vcpu->emulate_ctxt.cs_base =
+                       vcpu->arch.emulate_ctxt.cs_base =
                                        get_segment_base(vcpu,
VCPU_SREG_CS);
-                       vcpu->emulate_ctxt.ds_base =
+                       vcpu->arch.emulate_ctxt.ds_base =
                                        get_segment_base(vcpu,
VCPU_SREG_DS);
-                       vcpu->emulate_ctxt.es_base =
+                       vcpu->arch.emulate_ctxt.es_base =
                                        get_segment_base(vcpu,
VCPU_SREG_ES);
-                       vcpu->emulate_ctxt.ss_base =
+                       vcpu->arch.emulate_ctxt.ss_base =
                                        get_segment_base(vcpu,
VCPU_SREG_SS);
                }
 
-               vcpu->emulate_ctxt.gs_base =
+               vcpu->arch.emulate_ctxt.gs_base =
                                        get_segment_base(vcpu,
VCPU_SREG_GS);
-               vcpu->emulate_ctxt.fs_base =
+               vcpu->arch.emulate_ctxt.fs_base =
                                        get_segment_base(vcpu,
VCPU_SREG_FS);
 
-               r = x86_decode_insn(&vcpu->emulate_ctxt, &emulate_ops);
+               r = x86_decode_insn(&vcpu->arch.emulate_ctxt,
&emulate_ops);
                ++vcpu->stat.insn_emulation;
                if (r)  {
                        ++vcpu->stat.insn_emulation_fail;
@@ -1830,7 +1830,7 @@ int emulate_instruction(struct kvm_vcpu *vcpu,
                }
        }
 
-       r = x86_emulate_insn(&vcpu->emulate_ctxt, &emulate_ops);
+       r = x86_emulate_insn(&vcpu->arch.emulate_ctxt, &emulate_ops);
 
        if (vcpu->arch.pio.string)
                return EMULATE_DO_MMIO;
@@ -1854,7 +1854,7 @@ int emulate_instruction(struct kvm_vcpu *vcpu,
        }
 
        kvm_x86_ops->decache_regs(vcpu);
-       kvm_x86_ops->set_rflags(vcpu, vcpu->emulate_ctxt.eflags);
+       kvm_x86_ops->set_rflags(vcpu, vcpu->arch.emulate_ctxt.eflags);
 
        if (vcpu->mmio_is_write) {
                vcpu->mmio_needed = 0;
diff --git a/drivers/kvm/x86.h b/drivers/kvm/x86.h
index 2a7bd5d..0e01ac7 100644
--- a/drivers/kvm/x86.h
+++ b/drivers/kvm/x86.h
@@ -157,14 +157,14 @@ struct kvm_vcpu_arch {
 
        int cpuid_nent;
        struct kvm_cpuid_entry2 cpuid_entries[KVM_MAX_CPUID_ENTRIES];
+       /* emulate context */
+
+       struct x86_emulate_ctxt emulate_ctxt;
 };
 
 struct kvm_vcpu {
        KVM_VCPU_COMM;
 
-       /* emulate context */
-
-       struct x86_emulate_ctxt emulate_ctxt;
        struct kvm_vcpu_arch arch;
 };
 
-- 
1.5.1.2

Attachment: 0013-kvm-portability-Moving-emulate_ctxt-to-kvm_vcpu_ar.patch
Description: 0013-kvm-portability-Moving-emulate_ctxt-to-kvm_vcpu_ar.patch

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to