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: Janakarajan Natarajan <Janakarajan.Natarajan@amd.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
This commit is contained in:
parent
8a77e90966
commit
0dc92119b5
|
@ -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)
|
||||||
{
|
{
|
||||||
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)
|
||||||
{
|
{
|
||||||
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
|
||||||
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)
|
||||||
/* 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)
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue