On Wed, 2022-08-31 at 00:35 +0000, Sean Christopherson wrote: > Drop writes to APIC_RRR, a.k.a. Remote Read Data Register, on AVIC > unaccelerated write traps. The register is read-only and isn't emulated > by KVM. Sending the register through kvm_apic_write_nodecode() will > result in screaming when x2APIC is enabled due to the unexpected failure > to retrieve the MSR (KVM expects that only "legal" accesses will trap). I wonder about ESR register as well (280H), KVM doesn't seem to support it either, but allows 0 writes. Anyway: Reviewed-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx> Best regards, Maxim Levitsky > > Fixes: 4d1d7942e36a ("KVM: SVM: Introduce logic to (de)activate x2AVIC mode") > Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> > --- > arch/x86/kvm/svm/avic.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c > index dad5affe44c1..b2033a56010c 100644 > --- a/arch/x86/kvm/svm/avic.c > +++ b/arch/x86/kvm/svm/avic.c > @@ -675,6 +675,9 @@ static int avic_unaccel_trap_write(struct kvm_vcpu *vcpu) > case APIC_DFR: > avic_handle_dfr_update(vcpu); > break; > + case APIC_RRR: > + /* Ignore writes to Read Remote Data, it's read-only. */ > + return 1; > default: > break; > }