Changeset 91305 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Sep 17, 2021 8:56:45 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 146965
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/CPUM.cpp
r91304 r91305 1067 1067 pCtx->hwvirt.vmx.pvVirtApicPageR3 = NULL; 1068 1068 } 1069 if (pCtx->hwvirt.vmx.pvIoBitmapR3)1070 {1071 SUPR3ContFree(pCtx->hwvirt.vmx.pvIoBitmapR3, VMX_V_IO_BITMAP_A_PAGES + VMX_V_IO_BITMAP_B_PAGES);1072 pCtx->hwvirt.vmx.pvIoBitmapR3 = NULL;1073 }1074 1069 } 1075 1070 } … … 1115 1110 AssertCompile(sizeof(pCtx->hwvirt.vmx.abMsrBitmap) == VMX_V_MSR_BITMAP_PAGES * X86_PAGE_SIZE); 1116 1111 AssertCompile(sizeof(pCtx->hwvirt.vmx.abMsrBitmap) == VMX_V_MSR_BITMAP_SIZE); 1112 AssertCompile(sizeof(pCtx->hwvirt.vmx.abIoBitmap) == (VMX_V_IO_BITMAP_A_PAGES + VMX_V_IO_BITMAP_B_PAGES) * X86_PAGE_SIZE); 1113 AssertCompile(sizeof(pCtx->hwvirt.vmx.abIoBitmap) == VMX_V_IO_BITMAP_A_SIZE + VMX_V_IO_BITMAP_B_SIZE); 1117 1114 1118 1115 /* … … 1132 1129 1133 1130 /* 1134 * Allocate the I/O bitmaps (A and B).1135 */1136 pCtx->hwvirt.vmx.pvIoBitmapR3 = SUPR3ContAlloc(VMX_V_IO_BITMAP_A_PAGES + VMX_V_IO_BITMAP_B_PAGES,1137 &pCtx->hwvirt.vmx.pvIoBitmapR0, NULL);1138 if (pCtx->hwvirt.vmx.pvIoBitmapR3)1139 { /* likely */ }1140 else1141 {1142 LogRel(("CPUM%u: Failed to alloc %u pages for the nested-guest's I/O bitmaps\n", pVCpu->idCpu,1143 VMX_V_IO_BITMAP_A_PAGES + VMX_V_IO_BITMAP_B_PAGES));1144 break;1145 }1146 1147 /*1148 1131 * Zero out all allocated pages (should compress well for saved-state). 1149 1132 */ 1150 /** @todo this is and always was unnecessary - they are already zeroed. */1133 /** @todo r=bird: this is and always was unnecessary - they are already zeroed. */ 1151 1134 RT_ZERO(pCtx->hwvirt.vmx.Vmcs); 1152 1135 RT_ZERO(pCtx->hwvirt.vmx.ShadowVmcs); … … 1157 1140 RT_ZERO(pCtx->hwvirt.vmx.aExitMsrLoadArea); 1158 1141 RT_ZERO(pCtx->hwvirt.vmx.abMsrBitmap); 1159 memset(pCtx->hwvirt.vmx.CTX_SUFF(pvIoBitmap), 0, VMX_V_IO_BITMAP_A_SIZE + VMX_V_IO_BITMAP_B_SIZE);1142 RT_ZERO(pCtx->hwvirt.vmx.abIoBitmap); 1160 1143 memset(pCtx->hwvirt.vmx.CTX_SUFF(pvVirtApicPage), 0, VMX_V_VIRT_APIC_SIZE); 1161 1144 } … … 2471 2454 SSMR3PutMem(pSSM, &pGstCtx->hwvirt.vmx.aExitMsrLoadArea[0], sizeof(pGstCtx->hwvirt.vmx.aExitMsrLoadArea)); 2472 2455 SSMR3PutMem(pSSM, &pGstCtx->hwvirt.vmx.abMsrBitmap[0], sizeof(pGstCtx->hwvirt.vmx.abMsrBitmap)); 2473 SSMR3PutMem(pSSM, pGstCtx->hwvirt.vmx.pvIoBitmapR3, VMX_V_IO_BITMAP_A_SIZE + VMX_V_IO_BITMAP_B_SIZE);2456 SSMR3PutMem(pSSM, &pGstCtx->hwvirt.vmx.abIoBitmap[0], sizeof(pGstCtx->hwvirt.vmx.abIoBitmap)); 2474 2457 SSMR3PutU64(pSSM, pGstCtx->hwvirt.vmx.uFirstPauseLoopTick); 2475 2458 SSMR3PutU64(pSSM, pGstCtx->hwvirt.vmx.uPrevPauseTick); … … 2761 2744 SSMR3GetMem(pSSM, &pGstCtx->hwvirt.vmx.aExitMsrLoadArea[0], sizeof(pGstCtx->hwvirt.vmx.aExitMsrLoadArea)); 2762 2745 SSMR3GetMem(pSSM, &pGstCtx->hwvirt.vmx.abMsrBitmap[0], sizeof(pGstCtx->hwvirt.vmx.abMsrBitmap)); 2763 SSMR3GetMem(pSSM, pGstCtx->hwvirt.vmx.pvIoBitmapR3, VMX_V_IO_BITMAP_A_SIZE + VMX_V_IO_BITMAP_B_SIZE);2746 SSMR3GetMem(pSSM, &pGstCtx->hwvirt.vmx.abIoBitmap[0], sizeof(pGstCtx->hwvirt.vmx.abIoBitmap)); 2764 2747 SSMR3GetU64(pSSM, &pGstCtx->hwvirt.vmx.uFirstPauseLoopTick); 2765 2748 SSMR3GetU64(pSSM, &pGstCtx->hwvirt.vmx.uPrevPauseTick);
Note:
See TracChangeset
for help on using the changeset viewer.