/** @file\r
IORT Table Generator\r
\r
- Copyright (c) 2017 - 2020, ARM Limited. All rights reserved.\r
+ Copyright (c) 2017 - 2022, Arm Limited. All rights reserved.\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
@par Reference(s):\r
return Status;\r
}\r
\r
- if ((NodeList->IdMappingCount > 0) &&\r
- (NodeList->IdMappingToken != CM_NULL_TOKEN))\r
- {\r
+ if (NodeList->IdMappingCount > 0) {\r
+ if (NodeList->IdMappingToken == CM_NULL_TOKEN) {\r
+ Status = EFI_INVALID_PARAMETER;\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "ERROR: IORT: Invalid Id Mapping token,"\r
+ " Token = 0x%x, Status =%r\n",\r
+ NodeList->IdMappingToken,\r
+ Status\r
+ ));\r
+ return Status;\r
+ }\r
+\r
// Ids for Named Component\r
IdMapArray = (EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE *)((UINT8 *)NcNode +\r
NcNode->Node.IdReference);\r
RcNode->Reserved1[1] = EFI_ACPI_RESERVED_BYTE;\r
RcNode->Reserved1[2] = EFI_ACPI_RESERVED_BYTE;\r
\r
- if ((NodeList->IdMappingCount > 0) &&\r
- (NodeList->IdMappingToken != CM_NULL_TOKEN))\r
- {\r
+ if (NodeList->IdMappingCount > 0) {\r
+ if (NodeList->IdMappingToken == CM_NULL_TOKEN) {\r
+ Status = EFI_INVALID_PARAMETER;\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "ERROR: IORT: Invalid Id Mapping token,"\r
+ " Token = 0x%x, Status =%r\n",\r
+ NodeList->IdMappingToken,\r
+ Status\r
+ ));\r
+ return Status;\r
+ }\r
+\r
// Ids for Root Complex\r
IdMapArray = (EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE *)((UINT8 *)RcNode +\r
RcNode->Node.IdReference);\r
}\r
}\r
\r
- if ((NodeList->IdMappingCount > 0) &&\r
- (NodeList->IdMappingToken != CM_NULL_TOKEN))\r
- {\r
+ if (NodeList->IdMappingCount > 0) {\r
+ if (NodeList->IdMappingToken == CM_NULL_TOKEN) {\r
+ Status = EFI_INVALID_PARAMETER;\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "ERROR: IORT: Invalid Id Mapping token,"\r
+ " Token = 0x%x, Status =%r\n",\r
+ NodeList->IdMappingToken,\r
+ Status\r
+ ));\r
+ return Status;\r
+ }\r
+\r
// Ids for SMMU v1/v2 Node\r
IdMapArray = (EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE *)((UINT8 *)SmmuNode +\r
SmmuNode->Node.IdReference);\r
SmmuV3Node->DeviceIdMappingIndex = NodeList->DeviceIdMappingIndex;\r
}\r
\r
- if ((NodeList->IdMappingCount > 0) &&\r
- (NodeList->IdMappingToken != CM_NULL_TOKEN))\r
- {\r
+ if (NodeList->IdMappingCount > 0) {\r
+ if (NodeList->IdMappingToken == CM_NULL_TOKEN) {\r
+ Status = EFI_INVALID_PARAMETER;\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "ERROR: IORT: Invalid Id Mapping token,"\r
+ " Token = 0x%x, Status =%r\n",\r
+ NodeList->IdMappingToken,\r
+ Status\r
+ ));\r
+ return Status;\r
+ }\r
+\r
// Ids for SMMUv3 node\r
IdMapArray = (EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE *)((UINT8 *)SmmuV3Node +\r
SmmuV3Node->Node.IdReference);\r
return Status;\r
}\r
\r
- if ((NodeList->IdMappingCount > 0) &&\r
- (NodeList->IdMappingToken != CM_NULL_TOKEN))\r
- {\r
+ if (NodeList->IdMappingCount > 0) {\r
+ if (NodeList->IdMappingToken == CM_NULL_TOKEN) {\r
+ Status = EFI_INVALID_PARAMETER;\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "ERROR: IORT: Invalid Id Mapping token,"\r
+ " Token = 0x%x, Status =%r\n",\r
+ NodeList->IdMappingToken,\r
+ Status\r
+ ));\r
+ return Status;\r
+ }\r
+\r
// Ids for PMCG node\r
IdMapArray = (EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE *)((UINT8 *)PmcgNode +\r
PmcgNode->Node.IdReference);\r