diff options
author | neel <neel@FreeBSD.org> | 2014-01-17 04:21:39 +0000 |
---|---|---|
committer | neel <neel@FreeBSD.org> | 2014-01-17 04:21:39 +0000 |
commit | 77ef1cf9973690eed027f1f25f0924865126f733 (patch) | |
tree | 8a4c6fba8af0f7c8269e5e402537fe850315a466 /sys/amd64/vmm/intel/vmcs.h | |
parent | d34702f4cf296668c3511d6c1728b1fa03f3951d (diff) | |
download | FreeBSD-src-77ef1cf9973690eed027f1f25f0924865126f733.zip FreeBSD-src-77ef1cf9973690eed027f1f25f0924865126f733.tar.gz |
If a VM-exit happens during an NMI injection then clear the "NMI Blocking" bit
in the Guest Interruptibility-state VMCS field.
If we fail to do this then a subsequent VM-entry will fail because it is an
error to inject an NMI into the guest while "NMI Blocking" is turned on. This
is described in "Checks on Guest Non-Register State" in the Intel SDM.
Submitted by: David Reed (david.reed@tidalscale.com)
Diffstat (limited to 'sys/amd64/vmm/intel/vmcs.h')
-rw-r--r-- | sys/amd64/vmm/intel/vmcs.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/amd64/vmm/intel/vmcs.h b/sys/amd64/vmm/intel/vmcs.h index fde93e5..cd2f84b 100644 --- a/sys/amd64/vmm/intel/vmcs.h +++ b/sys/amd64/vmm/intel/vmcs.h @@ -333,10 +333,10 @@ vmcs_write(uint32_t encoding, uint64_t val) /* * VMCS interrupt information fields */ -#define VMCS_INTR_INFO_VALID (1U << 31) -#define VMCS_INTR_INFO_TYPE(info) (((info) >> 8) & 0x7) -#define VMCS_INTR_INFO_HW_INTR (0 << 8) -#define VMCS_INTR_INFO_NMI (2 << 8) +#define VMCS_INTR_VALID (1U << 31) +#define VMCS_INTR_T_MASK 0x700 /* Interruption-info type */ +#define VMCS_INTR_T_HWINTR (0 << 8) +#define VMCS_INTR_T_NMI (2 << 8) /* * VMCS IDT-Vectoring information fields |