Commit 0dc92119 authored by Janakarajan Natarajan's avatar Janakarajan Natarajan Committed by Radim Krčmář

KVM: SVM: Rename lbr_ctl field in the vmcb control area

Rename the lbr_ctl variable to better reflect the purpose of the field -
provide support for virtualization extensions.
Signed-off-by: default avatarJanakarajan Natarajan <Janakarajan.Natarajan@amd.com>
Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
parent 8a77e909
...@@ -83,7 +83,7 @@ struct __attribute__ ((__packed__)) vmcb_control_area { ...@@ -83,7 +83,7 @@ struct __attribute__ ((__packed__)) vmcb_control_area {
u32 event_inj; u32 event_inj;
u32 event_inj_err; u32 event_inj_err;
u64 nested_cr3; u64 nested_cr3;
u64 lbr_ctl; u64 virt_ext;
u32 clean; u32 clean;
u32 reserved_5; u32 reserved_5;
u64 next_rip; u64 next_rip;
......
...@@ -947,7 +947,7 @@ static void svm_enable_lbrv(struct vcpu_svm *svm) ...@@ -947,7 +947,7 @@ static void svm_enable_lbrv(struct vcpu_svm *svm)
{ {
u32 *msrpm = svm->msrpm; u32 *msrpm = svm->msrpm;
svm->vmcb->control.lbr_ctl |= LBR_CTL_ENABLE_MASK; svm->vmcb->control.virt_ext |= LBR_CTL_ENABLE_MASK;
set_msr_interception(msrpm, MSR_IA32_LASTBRANCHFROMIP, 1, 1); set_msr_interception(msrpm, MSR_IA32_LASTBRANCHFROMIP, 1, 1);
set_msr_interception(msrpm, MSR_IA32_LASTBRANCHTOIP, 1, 1); set_msr_interception(msrpm, MSR_IA32_LASTBRANCHTOIP, 1, 1);
set_msr_interception(msrpm, MSR_IA32_LASTINTFROMIP, 1, 1); set_msr_interception(msrpm, MSR_IA32_LASTINTFROMIP, 1, 1);
...@@ -958,7 +958,7 @@ static void svm_disable_lbrv(struct vcpu_svm *svm) ...@@ -958,7 +958,7 @@ static void svm_disable_lbrv(struct vcpu_svm *svm)
{ {
u32 *msrpm = svm->msrpm; u32 *msrpm = svm->msrpm;
svm->vmcb->control.lbr_ctl &= ~LBR_CTL_ENABLE_MASK; svm->vmcb->control.virt_ext &= ~LBR_CTL_ENABLE_MASK;
set_msr_interception(msrpm, MSR_IA32_LASTBRANCHFROMIP, 0, 0); set_msr_interception(msrpm, MSR_IA32_LASTBRANCHFROMIP, 0, 0);
set_msr_interception(msrpm, MSR_IA32_LASTBRANCHTOIP, 0, 0); set_msr_interception(msrpm, MSR_IA32_LASTBRANCHTOIP, 0, 0);
set_msr_interception(msrpm, MSR_IA32_LASTINTFROMIP, 0, 0); set_msr_interception(msrpm, MSR_IA32_LASTINTFROMIP, 0, 0);
...@@ -2708,7 +2708,7 @@ static inline void copy_vmcb_control_area(struct vmcb *dst_vmcb, struct vmcb *fr ...@@ -2708,7 +2708,7 @@ static inline void copy_vmcb_control_area(struct vmcb *dst_vmcb, struct vmcb *fr
dst->event_inj = from->event_inj; dst->event_inj = from->event_inj;
dst->event_inj_err = from->event_inj_err; dst->event_inj_err = from->event_inj_err;
dst->nested_cr3 = from->nested_cr3; dst->nested_cr3 = from->nested_cr3;
dst->lbr_ctl = from->lbr_ctl; dst->virt_ext = from->virt_ext;
} }
static int nested_svm_vmexit(struct vcpu_svm *svm) static int nested_svm_vmexit(struct vcpu_svm *svm)
...@@ -3014,7 +3014,7 @@ static bool nested_svm_vmrun(struct vcpu_svm *svm) ...@@ -3014,7 +3014,7 @@ static bool nested_svm_vmrun(struct vcpu_svm *svm)
/* We don't want to see VMMCALLs from a nested guest */ /* We don't want to see VMMCALLs from a nested guest */
clr_intercept(svm, INTERCEPT_VMMCALL); clr_intercept(svm, INTERCEPT_VMMCALL);
svm->vmcb->control.lbr_ctl = nested_vmcb->control.lbr_ctl; svm->vmcb->control.virt_ext = nested_vmcb->control.virt_ext;
svm->vmcb->control.int_vector = nested_vmcb->control.int_vector; svm->vmcb->control.int_vector = nested_vmcb->control.int_vector;
svm->vmcb->control.int_state = nested_vmcb->control.int_state; svm->vmcb->control.int_state = nested_vmcb->control.int_state;
svm->vmcb->control.tsc_offset += nested_vmcb->control.tsc_offset; svm->vmcb->control.tsc_offset += nested_vmcb->control.tsc_offset;
...@@ -4124,7 +4124,7 @@ static void dump_vmcb(struct kvm_vcpu *vcpu) ...@@ -4124,7 +4124,7 @@ static void dump_vmcb(struct kvm_vcpu *vcpu)
pr_err("%-20s%016llx\n", "avic_vapic_bar:", control->avic_vapic_bar); pr_err("%-20s%016llx\n", "avic_vapic_bar:", control->avic_vapic_bar);
pr_err("%-20s%08x\n", "event_inj:", control->event_inj); pr_err("%-20s%08x\n", "event_inj:", control->event_inj);
pr_err("%-20s%08x\n", "event_inj_err:", control->event_inj_err); pr_err("%-20s%08x\n", "event_inj_err:", control->event_inj_err);
pr_err("%-20s%lld\n", "lbr_ctl:", control->lbr_ctl); pr_err("%-20s%lld\n", "virt_ext:", control->virt_ext);
pr_err("%-20s%016llx\n", "next_rip:", control->next_rip); pr_err("%-20s%016llx\n", "next_rip:", control->next_rip);
pr_err("%-20s%016llx\n", "avic_backing_page:", control->avic_backing_page); pr_err("%-20s%016llx\n", "avic_backing_page:", control->avic_backing_page);
pr_err("%-20s%016llx\n", "avic_logical_id:", control->avic_logical_id); pr_err("%-20s%016llx\n", "avic_logical_id:", control->avic_logical_id);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment