KVM: SVM: Add definitions for new bits in VMCB::int_ctrl related to vNMI
authorSantosh Shukla <santosh.shukla@amd.com>
Mon, 27 Feb 2023 08:40:14 +0000 (14:10 +0530)
committerSean Christopherson <seanjc@google.com>
Thu, 23 Mar 2023 00:37:44 +0000 (17:37 -0700)
commit1c4522ab13b163173971d8b0c0eb0b253b1b7f28
tree1c24fc7962e9edd4d4a140d9b40d8e7bd22a9f9d
parent3763bf58029f3459d7187f687eadfc8eb08e5ca8
KVM: SVM: Add definitions for new bits in VMCB::int_ctrl related to vNMI

Add defines for three new bits in VMVC::int_ctrl that are part of SVM's
Virtual NMI (vNMI) support:

  V_NMI_PENDING_MASK(11)  - Virtual NMI is pending
  V_NMI_BLOCKING_MASK(12) - Virtual NMI is masked
  V_NMI_ENABLE_MASK(26)   - Enable NMI virtualization

To "inject" an NMI, the hypervisor (KVM) sets V_NMI_PENDING.  When the
CPU services the pending vNMI, hardware clears V_NMI_PENDING and sets
V_NMI_BLOCKING, e.g. to indicate that the vCPU is handling an NMI.
Hardware clears V_NMI_BLOCKING upon successful execution of IRET, or if a
VM-Exit occurs while delivering the virtual NMI.

Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Santosh Shukla <santosh.shukla@amd.com>
Link: https://lore.kernel.org/r/20230227084016.3368-10-santosh.shukla@amd.com
[sean: massage changelog]
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/include/asm/svm.h