Commit fdd2db51 authored by Adrian Hunter's avatar Adrian Hunter Committed by Sean Christopherson
Browse files

KVM: VMX: Allow toggling bits in MSR_IA32_RTIT_CTL when enable bit is cleared



Allow toggling other bits in MSR_IA32_RTIT_CTL if the enable bit is being
cleared, the existing logic simply ignores the enable bit.  E.g. KVM will
incorrectly reject a write of '0' to stop tracing.

Fixes: bf8c55d8 ("KVM: x86: Implement Intel PT MSRs read/write emulation")
Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
[sean: rework changelog, drop stable@]
Reviewed-by: default avatarXiaoyao Li <xiaoyao.li@intel.com>
Link: https://lore.kernel.org/r/20241101185031.1799556-3-seanjc@google.com


Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
parent 04bc93cf
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1636,7 +1636,8 @@ static int vmx_rtit_ctl_check(struct kvm_vcpu *vcpu, u64 data)
	 * result in a #GP unless the same write also clears TraceEn.
	 */
	if ((vmx->pt_desc.guest.ctl & RTIT_CTL_TRACEEN) &&
		((vmx->pt_desc.guest.ctl ^ data) & ~RTIT_CTL_TRACEEN))
	    (data & RTIT_CTL_TRACEEN) &&
	    data != vmx->pt_desc.guest.ctl)
		return 1;

	/*