On 8/6/24 07:54, Ravi Bangoria wrote: > If host supports Bus Lock Detect, KVM advertises it to guests even if > SVM support is absent. Additionally, guest wouldn't be able to use it > despite guest CPUID bit being set. Fix it by unconditionally clearing > the feature bit in KVM cpu capability. > > Reported-by: Jim Mattson <jmattson@xxxxxxxxxx> > Closes: https://lore.kernel.org/r/CALMp9eRet6+v8Y1Q-i6mqPm4hUow_kJNhmVHfOV8tMfuSS=tVg@xxxxxxxxxxxxxx > Fixes: 76ea438b4afc ("KVM: X86: Expose bus lock debug exception to guest") > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Ravi Bangoria <ravi.bangoria@xxxxxxx> > Reviewed-by: Jim Mattson <jmattson@xxxxxxxxxx> Reviewed-by: Tom Lendacky <thomas.lendacky@xxxxxxx> > --- > arch/x86/kvm/svm/svm.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c > index c115d26844f7..85631112c872 100644 > --- a/arch/x86/kvm/svm/svm.c > +++ b/arch/x86/kvm/svm/svm.c > @@ -5223,6 +5223,9 @@ static __init void svm_set_cpu_caps(void) > > /* CPUID 0x8000001F (SME/SEV features) */ > sev_set_cpu_caps(); > + > + /* Don't advertise Bus Lock Detect to guest if SVM support is absent */ > + kvm_cpu_cap_clear(X86_FEATURE_BUS_LOCK_DETECT); > } > > static __init int svm_hardware_setup(void)