Changeset 79166 in vbox
- Timestamp:
- Jun 17, 2019 4:54:51 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/HMVMXAll.cpp
r79142 r79166 525 525 false); 526 526 527 /* For conforming segments, CS.DPL must be <= SS.DPL, while CS.DPL 528 must equal SS.DPL for non-confroming segments. 529 Note! This is also a hard requirement like above. */ 527 /* 528 * For conforming segments, CS.DPL must be <= SS.DPL, while CS.DPL must equal 529 * SS.DPL for non-confroming segments. 530 * Note! This is also a hard requirement like above. 531 */ 530 532 AssertMsgReturn( pSel->Attr.n.u4Type & X86_SEL_TYPE_CONF 531 533 ? pSel->Attr.n.u2Dpl <= uStackDpl … … 763 765 return false; 764 766 } 765 if ( (pCtx->cs.u32Limit != 0xffff)766 || (pCtx->ds.u32Limit != 0xffff)767 || (pCtx->es.u32Limit != 0xffff)768 || (pCtx->ss.u32Limit != 0xffff)769 || (pCtx->fs.u32Limit != 0xffff)770 || (pCtx->gs.u32Limit != 0xffff))767 if ( pCtx->cs.u32Limit != 0xffff 768 || pCtx->ds.u32Limit != 0xffff 769 || pCtx->es.u32Limit != 0xffff 770 || pCtx->ss.u32Limit != 0xffff 771 || pCtx->fs.u32Limit != 0xffff 772 || pCtx->gs.u32Limit != 0xffff) 771 773 { 772 774 STAM_COUNTER_INC(&pVCpu->hm.s.StatVmxCheckBadV86SelLimit); 773 775 return false; 774 776 } 775 if ( (pCtx->cs.Attr.u != 0xf3)776 || (pCtx->ds.Attr.u != 0xf3)777 || (pCtx->es.Attr.u != 0xf3)778 || (pCtx->ss.Attr.u != 0xf3)779 || (pCtx->fs.Attr.u != 0xf3)780 || (pCtx->gs.Attr.u != 0xf3))777 if ( pCtx->cs.Attr.u != 0xf3 778 || pCtx->ds.Attr.u != 0xf3 779 || pCtx->es.Attr.u != 0xf3 780 || pCtx->ss.Attr.u != 0xf3 781 || pCtx->fs.Attr.u != 0xf3 782 || pCtx->gs.Attr.u != 0xf3) 781 783 { 782 784 STAM_COUNTER_INC(&pVCpu->hm.s.StatVmxCheckBadV86SelAttr); … … 1153 1155 * Gets the active (in use) VMCS info. object for the specified VCPU. 1154 1156 * 1155 * This is either the guest or nested-guest VMCS and need not necessarily pertain to1156 * the "current" VMCS (in the VMX definition of the term). For instance, if the1157 * VM-entry failed due to an invalid-guest state, we may have "cleared" the VMCS1158 * while returning to ring-3. The VMCS info. object for that VMCS would still be1159 * active and returned so that we could dump the VMCS fields to ring-3 for1160 * diagnostics. This function is thus only used to distinguish between the1161 * nested-guest or guest VMCS.1157 * This is either the guest or nested-guest VMCS info. and need not necessarily 1158 * pertain to the "current" VMCS (in the VMX definition of the term). For instance, 1159 * if the VM-entry failed due to an invalid-guest state, we may have "cleared" the 1160 * current VMCS while returning to ring-3. However, the VMCS info. object for that 1161 * VMCS would still be active and returned here so that we could dump the VMCS 1162 * fields to ring-3 for diagnostics. This function is thus only used to 1163 * distinguish between the nested-guest or guest VMCS. 1162 1164 * 1163 1165 * @returns The active VMCS information.
Note:
See TracChangeset
for help on using the changeset viewer.