summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Christopherson <seanjc@google.com>2026-09-30 12:36:31 -0700
committerSean Christopherson <seanjc@google.com>2026-09-30 14:22:24 -0700
commitcab4449bddbdcd8bf121ebe67ddb44fc61ca1b8e (patch)
treecfe48dba231b4ddc7e08aa14a7ba57e04b21aee9
parent5cb0577b74971d578ab105f3b6a8f43fce1f3968 (diff)
KVM: nSVM: Open code check on LBR virtualization being enabled in vmcb12
Now that KVM clears ENABLE_V_LBR if LBR virtualization isn't supported when caching vmcb12 control fields, i.e. now that the logic is a simple one-liner, open the check and drop the now-superfluous wrapper. No functional change intended. Link: https://patch.msgid.link/20260930193634.3415089-10-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
-rw-r--r--arch/x86/kvm/svm/nested.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c
index 64464bdbe644..3c1c3e9698bb 100644
--- a/arch/x86/kvm/svm/nested.c
+++ b/arch/x86/kvm/svm/nested.c
@@ -738,11 +738,6 @@ static int nested_svm_load_cr3(struct kvm_vcpu *vcpu, unsigned long cr3,
return 0;
}
-static bool nested_vmcb12_has_lbrv(struct kvm_vcpu *vcpu)
-{
- return to_svm(vcpu)->nested.ctl.misc_ctl2 & SVM_MISC2_ENABLE_V_LBR;
-}
-
static void nested_vmcb02_prepare_save(struct vcpu_svm *svm)
{
struct vmcb_ctrl_area_cached *control = &svm->nested.ctl;
@@ -817,7 +812,7 @@ static void nested_vmcb02_prepare_save(struct vcpu_svm *svm)
vmcb_mark_dirty(vmcb02, VMCB_DR);
}
- if (nested_vmcb12_has_lbrv(vcpu)) {
+ if (control->misc_ctl2 & SVM_MISC2_ENABLE_V_LBR) {
/*
* Reserved bits of DEBUGCTL are ignored. Be consistent with
* svm_set_msr's definition of reserved bits.
@@ -1310,7 +1305,7 @@ static int nested_svm_vmexit_update_vmcb12(struct kvm_vcpu *vcpu)
if (guest_cpu_cap_has(vcpu, X86_FEATURE_NRIPS))
vmcb12->control.next_rip = vmcb02->control.next_rip;
- if (nested_vmcb12_has_lbrv(vcpu))
+ if (svm->nested.ctl.misc_ctl2 & SVM_MISC2_ENABLE_V_LBR)
svm_copy_lbrs(&vmcb12->save, &vmcb02->save);
vmcb12->control.event_inj = 0;
@@ -1387,7 +1382,7 @@ void nested_svm_vmexit(struct vcpu_svm *svm)
if (!nested_exit_on_intr(svm))
kvm_make_request(KVM_REQ_EVENT, &svm->vcpu);
- if (!nested_vmcb12_has_lbrv(vcpu)) {
+ if (!(svm->nested.ctl.misc_ctl2 & SVM_MISC2_ENABLE_V_LBR)) {
svm_copy_lbrs(&vmcb01->save, &vmcb02->save);
vmcb_mark_dirty(vmcb01, VMCB_LBR);
}