UINTN Index;\r
BOOLEAN *NewIsRealPciDevice;\r
VTD_SOURCE_ID *NewPciDescriptors;\r
+ UINTN *NewAccessCount;\r
\r
PciDeviceInfo = &mVtdUnitInformation[VtdIndex].PciDeviceInfo;\r
\r
FreePool (NewIsRealPciDevice);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+ NewAccessCount = AllocateZeroPool (sizeof(*NewAccessCount) * (PciDeviceInfo->PciDescriptorMaxNumber + MAX_PCI_DESCRIPTORS));\r
+ if (NewAccessCount == NULL) {\r
+ FreePool (NewIsRealPciDevice);\r
+ FreePool (NewPciDescriptors);\r
+ return EFI_OUT_OF_RESOURCES;\r
+ }\r
PciDeviceInfo->PciDescriptorMaxNumber += MAX_PCI_DESCRIPTORS;\r
if (PciDeviceInfo->IsRealPciDevice != NULL) {\r
CopyMem (NewIsRealPciDevice, PciDeviceInfo->IsRealPciDevice, sizeof(*NewIsRealPciDevice) * PciDeviceInfo->PciDescriptorNumber);\r
FreePool (PciDeviceInfo->PciDescriptors);\r
}\r
PciDeviceInfo->PciDescriptors = NewPciDescriptors;\r
+ if (PciDeviceInfo->AccessCount != NULL) {\r
+ CopyMem (NewAccessCount, PciDeviceInfo->AccessCount, sizeof(*NewAccessCount) * PciDeviceInfo->PciDescriptorNumber);\r
+ FreePool (PciDeviceInfo->AccessCount);\r
+ }\r
+ PciDeviceInfo->AccessCount = NewAccessCount;\r
}\r
\r
ASSERT (PciDeviceInfo->PciDescriptorNumber < PciDeviceInfo->PciDescriptorMaxNumber);\r