1. 13 Jan, 2023 1 commit
    • Sean Christopherson's avatar
      KVM: x86: Blindly get current x2APIC reg value on "nodecode write" traps · 0a19807b
      Sean Christopherson authored
      When emulating a x2APIC write in response to an APICv/AVIC trap, get the
      the written value from the vAPIC page without checking that reads are
      allowed for the target register.  AVIC can generate trap-like VM-Exits on
      writes to EOI, and so KVM needs to get the written value from the backing
      page without running afoul of EOI's write-only behavior.
      
      Alternatively, EOI could be special cased to always write '0', e.g. so
      that the sanity check could be preserved, but x2APIC on AMD is actually
      supposed to disallow non-zero writes (not emulated by KVM), and the
      sanity check was a byproduct of how the KVM code was written, i.e. wasn't
      added to guard against anything in particular.
      
      Fixes: 70c8327c ("KVM: x86: Bug the VM if an accelerated x2APIC trap occurs on a "bad" reg")
      Fixes: 1bd9dfec ("KVM: x86: Do not block APIC write for non ICR registers")
      Reported-by: default avatarAlejandro Jimenez <alejandro.j.jimenez@oracle.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarMaxim Levitsky <mlevitsk@redhat.com>
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Message-Id: <20230106011306.85230-2-seanjc@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      0a19807b
  2. 28 Dec, 2022 6 commits
  3. 27 Dec, 2022 33 commits