提交 93a152be 编写于 作者: G Gleb Natapov 提交者: Avi Kivity

KVM: remove realmode_lmsw function.

Use (get|set)_cr callback to emulate lmsw inside emulator.
Signed-off-by: NGleb Natapov <gleb@redhat.com>
Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
上级 52a46617
...@@ -583,8 +583,6 @@ int emulate_instruction(struct kvm_vcpu *vcpu, ...@@ -583,8 +583,6 @@ int emulate_instruction(struct kvm_vcpu *vcpu,
void kvm_report_emulation_failure(struct kvm_vcpu *cvpu, const char *context); void kvm_report_emulation_failure(struct kvm_vcpu *cvpu, const char *context);
void realmode_lgdt(struct kvm_vcpu *vcpu, u16 size, unsigned long address); void realmode_lgdt(struct kvm_vcpu *vcpu, u16 size, unsigned long address);
void realmode_lidt(struct kvm_vcpu *vcpu, u16 size, unsigned long address); void realmode_lidt(struct kvm_vcpu *vcpu, u16 size, unsigned long address);
void realmode_lmsw(struct kvm_vcpu *vcpu, unsigned long msw,
unsigned long *rflags);
void kvm_enable_efer_bits(u64); void kvm_enable_efer_bits(u64);
int kvm_get_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 *data); int kvm_get_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 *data);
......
...@@ -2486,8 +2486,8 @@ x86_emulate_insn(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops) ...@@ -2486,8 +2486,8 @@ x86_emulate_insn(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops)
c->dst.val = ops->get_cr(0, ctxt->vcpu); c->dst.val = ops->get_cr(0, ctxt->vcpu);
break; break;
case 6: /* lmsw */ case 6: /* lmsw */
realmode_lmsw(ctxt->vcpu, (u16)c->src.val, ops->set_cr(0, (ops->get_cr(0, ctxt->vcpu) & ~0x0ful) |
&ctxt->eflags); (c->src.val & 0x0f), ctxt->vcpu);
c->dst.type = OP_NONE; c->dst.type = OP_NONE;
break; break;
case 7: /* invlpg*/ case 7: /* invlpg*/
......
...@@ -4098,13 +4098,6 @@ void realmode_lidt(struct kvm_vcpu *vcpu, u16 limit, unsigned long base) ...@@ -4098,13 +4098,6 @@ void realmode_lidt(struct kvm_vcpu *vcpu, u16 limit, unsigned long base)
kvm_x86_ops->set_idt(vcpu, &dt); kvm_x86_ops->set_idt(vcpu, &dt);
} }
void realmode_lmsw(struct kvm_vcpu *vcpu, unsigned long msw,
unsigned long *rflags)
{
kvm_lmsw(vcpu, msw);
*rflags = kvm_get_rflags(vcpu);
}
static int move_to_next_stateful_cpuid_entry(struct kvm_vcpu *vcpu, int i) static int move_to_next_stateful_cpuid_entry(struct kvm_vcpu *vcpu, int i)
{ {
struct kvm_cpuid_entry2 *e = &vcpu->arch.cpuid_entries[i]; struct kvm_cpuid_entry2 *e = &vcpu->arch.cpuid_entries[i];
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册