\r
PPTT_NODE_INDEXER * ProcNodeIterator;\r
UINT32 NodeCount;\r
+ UINT32 Length;\r
\r
ASSERT (\r
(Generator != NULL) &&\r
// imposed on the Processor Hierarchy node by the specification.\r
// Note: The length field is 8 bit wide while the number of private\r
// resource field is 32 bit wide.\r
- if ((sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR) +\r
- (ProcInfoNode->NoOfPrivateResources * sizeof (UINT32))) > MAX_UINT8) {\r
+ Length = GetProcHierarchyNodeSize (ProcInfoNode);\r
+ if (Length > MAX_UINT8) {\r
Status = EFI_INVALID_PARAMETER;\r
DEBUG ((\r
DEBUG_ERROR,\r
\r
// Populate the node header\r
ProcStruct->Type = EFI_ACPI_6_3_PPTT_TYPE_PROCESSOR;\r
- ProcStruct->Length = GetProcHierarchyNodeSize (ProcInfoNode);\r
+ ProcStruct->Length = (UINT8)Length;\r
ProcStruct->Reserved[0] = EFI_ACPI_RESERVED_BYTE;\r
ProcStruct->Reserved[1] = EFI_ACPI_RESERVED_BYTE;\r
\r