KVM: x86: use direct accessors for RIP and RSP
Use specific inline functions for RIP and RSP instead of going through kvm_register_read and kvm_register_write, which are quite a mouthful. kvm_rsp_read and kvm_rsp_write did not exist, so add them. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
@@ -2372,8 +2372,8 @@ static int prepare_vmcs02(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12,
|
||||
if (!enable_ept)
|
||||
vcpu->arch.walk_mmu->inject_page_fault = vmx_inject_page_fault_nested;
|
||||
|
||||
kvm_register_write(vcpu, VCPU_REGS_RSP, vmcs12->guest_rsp);
|
||||
kvm_register_write(vcpu, VCPU_REGS_RIP, vmcs12->guest_rip);
|
||||
kvm_rsp_write(vcpu, vmcs12->guest_rsp);
|
||||
kvm_rip_write(vcpu, vmcs12->guest_rip);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3401,8 +3401,8 @@ static void sync_vmcs12(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12)
|
||||
vmcs12->guest_cr0 = vmcs12_guest_cr0(vcpu, vmcs12);
|
||||
vmcs12->guest_cr4 = vmcs12_guest_cr4(vcpu, vmcs12);
|
||||
|
||||
vmcs12->guest_rsp = kvm_register_read(vcpu, VCPU_REGS_RSP);
|
||||
vmcs12->guest_rip = kvm_register_read(vcpu, VCPU_REGS_RIP);
|
||||
vmcs12->guest_rsp = kvm_rsp_read(vcpu);
|
||||
vmcs12->guest_rip = kvm_rip_read(vcpu);
|
||||
vmcs12->guest_rflags = vmcs_readl(GUEST_RFLAGS);
|
||||
|
||||
vmcs12->guest_es_selector = vmcs_read16(GUEST_ES_SELECTOR);
|
||||
@@ -3585,8 +3585,8 @@ static void load_vmcs12_host_state(struct kvm_vcpu *vcpu,
|
||||
vcpu->arch.efer &= ~(EFER_LMA | EFER_LME);
|
||||
vmx_set_efer(vcpu, vcpu->arch.efer);
|
||||
|
||||
kvm_register_write(vcpu, VCPU_REGS_RSP, vmcs12->host_rsp);
|
||||
kvm_register_write(vcpu, VCPU_REGS_RIP, vmcs12->host_rip);
|
||||
kvm_rsp_write(vcpu, vmcs12->host_rsp);
|
||||
kvm_rip_write(vcpu, vmcs12->host_rip);
|
||||
vmx_set_rflags(vcpu, X86_EFLAGS_FIXED);
|
||||
vmx_set_interrupt_shadow(vcpu, 0);
|
||||
|
||||
|
Reference in New Issue
Block a user