]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
KVM: SVM: Make svm_x86_ops globally visible, clean up on-HyperV usage
authorSean Christopherson <seanjc@google.com>
Fri, 19 Sep 2025 21:59:28 +0000 (14:59 -0700)
committerSean Christopherson <seanjc@google.com>
Tue, 23 Sep 2025 15:56:44 +0000 (08:56 -0700)
commit44bfe1f0490d5620c7962ab7384797672b4c4293
treeec46639b415c0bf076de46c942aed3c5442cb701
parent29da8c823abffdacb71c7c07ec48fcf9eb38757c
KVM: SVM: Make svm_x86_ops globally visible, clean up on-HyperV usage

Make svm_x86_ops globally visible in anticipation of modifying the struct
in avic.c, and clean up the KVM-on-HyperV usage, as declaring _and using_
a local variable in a header that's only defined in one specific .c-file
is all kinds of ugly.

Opportunistically make svm_hv_enable_l2_tlb_flush() local to
svm_onhyperv.c, as the only reason it was visible was due to the
aforementioned shenanigans in svm_onhyperv.h.

Alternatively, svm_x86_ops could be explicitly passed to
svm_hv_hardware_setup() as a parameter.  While that approach is slightly
safer, e.g. avoids "hidden" updates, for better or worse, the Intel side
of KVM has already chosen to expose vt_x86_ops (and vt_init_ops).  Given
that svm_x86_ops is only truly consumed by kvm_ops_update, the odds of a
"hidden" update causing problems are extremely low.  So, absent a strong
reason to rework the VMX/TDX code, make svm_x86_ops visible, as having all
updates use exactly "svm_x86_ops." is advantageous in its own right.

No functional change intended.

Link: https://lore.kernel.org/r/20250919215934.1590410-2-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/svm/svm.c
arch/x86/kvm/svm/svm.h
arch/x86/kvm/svm/svm_onhyperv.c
arch/x86/kvm/svm/svm_onhyperv.h