From nobody Mon Feb 9 19:07:30 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+91095+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one); dmarc=fail(p=none dis=none) header.from=arm.com Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1657101455453252.68142860925298; Wed, 6 Jul 2022 02:57:35 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id i2gBYY1788612xNvXv59eSEB; Wed, 06 Jul 2022 02:57:35 -0700 X-Received: from EUR02-VE1-obe.outbound.protection.outlook.com (EUR02-VE1-obe.outbound.protection.outlook.com [40.107.2.57]) by mx.groups.io with SMTP id smtpd.web09.4384.1657101454028902126 for ; Wed, 06 Jul 2022 02:57:34 -0700 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=XNTb5Dz/3hXEGERbLf1wfYzDsJdCl5ral6REW8+svMZjBWFVWKOsGuzw/8rZzQqSlXIKfjq5aEVhoCQO9CwoazfRHg0pPB1NTV3LjJ97qYbjn57cXTcGlJhPsXj/S4usV8TEDc/XJEiXzevUku1de9HqhaBrmKYSA5au4QAlTX+e6Awyf3wxroDBGSW8VcGYo3qG1o/PKCVVhSyjldhxdwbZw8u9V+7B3M9ffUtY6kl0zEeedhYasGwTjSS2FfTjW1sF+hkK4FbnkZQaGy4xQaCf5BGoKZ5I69BlWrVG4/lGM1+QMiWbZMaaG9Mvc2wj7K584ycAfzRjrN/cPh1MCg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KInfIitDLk5HvjPKAIRCWn1xFUhxXTbIO9LAd9YCDfk=; b=f6itGbVcsx9GDMwf6ix0Kz4hAfXp1VyQvZfnwACtYBDrg2uPxOFw3dF60zRnY/PZJlCl8uqhGlgjjv3s17TQMxglnUtu+e5FStp8Yb5rK96Stg6zUuzrEHbKpkx/hfqsDcj3XubRU2HcjCYAixrWaBG8ulf3L5szGFLMprcaLAuxQegIJsRyoLOf5vLqlPY+2Ps/5MJZhN8UYoxi6dsn+2lTGxkNeGJXeU6HkDwFddtki4nJqA3gOK6rsACqdD0J+BzaJYohZXuBOoAsb7r/ZbB56gRqc3Xran6L6JzQfVdZVm61OOTkP7dUvuXcbA5LHxV8wKvVM/wRxVVjNmFYjA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) X-Received: from AS9PR04CA0080.eurprd04.prod.outlook.com (2603:10a6:20b:48b::28) by AM9PR08MB6163.eurprd08.prod.outlook.com (2603:10a6:20b:2de::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Wed, 6 Jul 2022 09:57:31 +0000 X-Received: from AM5EUR03FT044.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:48b:cafe::92) by AS9PR04CA0080.outlook.office365.com (2603:10a6:20b:48b::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.21 via Frontend Transport; Wed, 6 Jul 2022 09:57:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+91095+1787277+3901457@groups.io; helo=mail02.groups.io; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C X-Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT044.mail.protection.outlook.com (10.152.17.56) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.15 via Frontend Transport; Wed, 6 Jul 2022 09:57:29 +0000 X-Received: ("Tessian outbound 190453a6d737:v122"); Wed, 06 Jul 2022 09:57:29 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 2bcc8e553a428981 X-CR-MTA-TID: 64aa7808 X-Received: from 5afa4fc9816a.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 7D063D7A-AC28-4C74-801B-4F1532634D29.1; Wed, 06 Jul 2022 09:57:22 +0000 X-Received: from EUR02-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 5afa4fc9816a.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 06 Jul 2022 09:57:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oceFv1icgi7VGj9I+GJGkWsdJwHLzUa/cL+Ubkz4odCJ07AFl2m1IKfRLEbZh0X7eChhvMrqtK4kePHJ6YzbGS46uedfdejK75AQDYNdQFDy+/+Hf3z5xcZq3HcMiyQ89rXUDNzbFgCfdpO6PIoB1j5OtMtuq0JHOCXhwtF7fzsX/qFgah74EmEfUk/eUr2Xpt0/hEG+KuFyXiB1ysY8IdjnHqN/+tgrsjMDipCmbD5Z8SM+1JLOIXq6wzs5sb/cc00CY8XAietVSsK1J2h1MqU7dnMvGNONo5usw0+hWcM1pnCcot0cIYH51DuXv/TAftVlssvCzC1rmXtNIgLGXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KInfIitDLk5HvjPKAIRCWn1xFUhxXTbIO9LAd9YCDfk=; b=lOcSjV6Ykoes994vvC22NKRSn+eR5sIcz+dq1VpJ2QuE6buUm8cci8lSfwFGWoo8uLgMHxeA8Gt2N4BJ5mB3zIhGDgv6vpY6G6xbiBM8PrGnhw13qjTwpXwJ5AxQD/kXCzj/venDrD50CMlGBdrUCX3psTJRYZ8mHAOS/SbbzFYK22ZVtJhtnkUXiBxqfJcCpJDryQJmm3Wy6SmQSg/PS47nI3jrW6ty72TCnydJ1s9riqO8Lj/AW1xdWJHLOTHYz/e1Sch+nFmgl+JRv5JUnsdaoJZIyDykPyXAo3t2w1SUaIKLuw7FgeKX1Us9CI6yNzLG/3fj7Waoxe+Zpt24PA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none X-Received: from AM7PR04CA0030.eurprd04.prod.outlook.com (2603:10a6:20b:110::40) by VI1PR08MB3262.eurprd08.prod.outlook.com (2603:10a6:803:47::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.17; Wed, 6 Jul 2022 09:57:20 +0000 X-Received: from VE1EUR03FT039.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:110:cafe::9) by AM7PR04CA0030.outlook.office365.com (2603:10a6:20b:110::40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.21 via Frontend Transport; Wed, 6 Jul 2022 09:57:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C X-Received: from nebula.arm.com (40.67.248.234) by VE1EUR03FT039.mail.protection.outlook.com (10.152.19.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5395.14 via Frontend Transport; Wed, 6 Jul 2022 09:57:19 +0000 X-Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.9; Wed, 6 Jul 2022 09:56:36 +0000 X-Received: from E114225.Arm.com (10.1.196.36) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.9 via Frontend Transport; Wed, 6 Jul 2022 09:56:36 +0000 From: "Sami Mujawar" To: CC: Sami Mujawar , , , , , , Subject: [edk2-devel] [PATCH v4 6/8] DynamicTablesPkg: IORT set reference to interrupt array if present Date: Wed, 6 Jul 2022 10:56:29 +0100 Message-ID: <20220706095631.27196-7-sami.mujawar@arm.com> In-Reply-To: <20220706095631.27196-1-sami.mujawar@arm.com> References: <20220706095631.27196-1-sami.mujawar@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-Correlation-Id: 178cf98a-2317-4962-eaa7-08da5f35f059 X-MS-TrafficTypeDiagnostic: VI1PR08MB3262:EE_|AM5EUR03FT044:EE_|AM9PR08MB6163:EE_ x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 3Cr148815PaOTjQ/XbUSZ0w51OChwzF+NvZEnkaRSL9Xve2m/9CD0HAYRHzzH5LsYjZ1H1yPXxH8l95q2MHhN5bxlSWTKPXh9CsJEsdVsCrQ75QBeN3UX7YBJd6qoOsixkgohZJfsZV42fhePEnQJoENmq9u7xX0SXj+SBB3V0W4oXqezEi1b1fFT6JpiVtDvmj0uH+/+auveNvw9OOgS6ppy0RsxD1z9a75u7DOWHqyq88IO59RLKS5gglaZQ1aBrLlWE7CBMIn0bPyfHoe53zjTKXjtIf+7wQ+lueOgaD/tsu9gvcQprJP2QW+yBa+HM1FwaG7eEVGyqZxmGteCNIBC9fJ6JZrbL5xFh46pVNNf36zX8fcCNTUFgW4MlRyy930y2PC2VFRj7Jr57xoQa0Jx7EHYw+WywiZV4+5bIcdwE6KIBrpH5IOGk/8pMI+3+7J3JHltXnjusIE2ZFEmlY7Enc/0oTJp6uIKi2gEpwGRi8CMHIhzAX4DGNbSMyUQVOjQbRr9Anz6zV5QHdbefxGSAe/kHNmuv96ngYDmW9qmP56aWdL4+RN3Ek73fK3Me933euEJLSttUTr76VgMqLeMV3ZhZ0Bcll4T8vCd3OqGY6vWRrzJcA079+x8iyKQjqT6lJMAafhTVICJAI5yo/fbx+UvtwFoP0DfI24A3YF5ArYxoKKYer/5P9BtPE7gU83Zk0iwrXUvidept2HklmRYPgMmcce6PHieF4UCtZMVdnNm2Ajsy1J5HEldurc63U7SpET8wRkA2JUUXnfQvP2W4prHDc6EqwiRrrutTGv8Tz0fyGYok8Y3AwHvMQIVut6EXwM69fuguDhu/lljjxjXmba3mC7WsGiucXk20CHwGfj3aI9G/VM4/+OuZOB X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230016)(4636009)(136003)(39860400002)(396003)(376002)(346002)(40470700004)(36840700001)(46966006)(47076005)(426003)(83380400001)(336012)(41300700001)(36756003)(186003)(70586007)(8936002)(81166007)(6666004)(36860700001)(7696005)(86362001)(5660300002)(44832011)(1076003)(2906002)(966005)(478600001)(40480700001)(40460700003)(8676002)(2616005)(70206006)(4326008)(356005)(82310400005)(26005)(82740400003)(316002)(54906003)(6916009)(36900700001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3262 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT044.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: fa811b53-e562-4055-9ac8-08da5f35ea8b X-Microsoft-Antispam-Message-Info: kODdCwoOhvt0xAdilBinTqUpnLxJBXDsTAdzZrkHovY0pjOjIEsJIyRLmhYZSyuNyj5p0v2O0F2MErOa1VZNx4z55cskEk2QxpJyiJ5LI67+8D5odwt1uoVWfNfq1S6yuTKxgARixe1GkOMCr/MS3QTYg96fwHrk7FiBuNM8WUlrNWrj/0WUQPBMleCxp1dcgN/OTOsOzZ1swZCkvK9WWzSrMz2BeoUGbrXxFYZ25zRoAKvxtmcww4r1REWz6H83ZmhFnJ/MwkhK1pmVL7xqUYl3MLeIhcGqit5hadIWYQ2IKV1X1YQahC5Ie/oaf5Ha6oEfGoz10wsTG8twqhilLKZ4hcKJeQ5Mq6cl1SrH8Ud+7z4VH4KQYWqJ9AhgqQOOiiWQxZ44yDg+3FTyMygJRXmNtp8MKWCrw1wWxKg2q+YqAAxg17w4mUAL85ptO0gM/MhT56ToJJWNvJwKcxqG4FsXmMG2EpDjrKuv0chOoq+eYQG5MVdy4x6NbWGx9e9FPF8dXS4H1ATITrng7yFcE49kgT7iyFSShCnPAKyjWOom4iRXNdEs+ttKiJMLDyiygBYrvipdHyjH/bvKqz5CzXF9Z5hreVg5qmif1t6I5W80NfAzSVFLEosrwv4Sw9oa/x/MJXvIUdWrOaRh4Hn+3/B4MMuuyFtoTj0HmQhgIK8AF8h0bCxDUeD/spGSptka7zMJgyKPBq5nLFV15JjnUfgucpGJ4mG5BFVFAJZksMyyMh8MD9u5jT+hWfTcFkJ2jgh/WYnSkGm0neMAObtnU4wLIgBbiLyfELKodqscMRDeoERQ7b+VIoyyeE4Eo86piKGARGGBlRgK4et+PU+AWf/7Vkg/UOSzL9MAtHzarNk= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2022 09:57:29.6042 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 178cf98a-2317-4962-eaa7-08da5f35f059 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT044.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6163 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,sami.mujawar@arm.com X-Gm-Message-State: VXiemkjloTqTJUdYzliANLS4x1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1657101455; bh=HhpqqdJcsabxnR+NxHK419SyvdwExIck3o9Cjtnlss4=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=SNzhuNOl5/jDJQje6InnnBbce95o46mniXC8w37cZZ7u/a2Qo9dRVh8nq8iH/v8yRHU JaoJ9of4dc0HYid1rIIRui7TZPkdCz+TG73kMheJgQkZZjhiSwDtsVD2/k/A9qzYY7AWx ye2Vzseocm5VFSdjRodMAWDKim2FLUDAulE= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1657101456084100004 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The IORT generator is populating the reference field for Context and PMU interrupts even if their count is zero. Update the IORT generator to set the references only if the interrupt count is not 0. Also add checks to ensure a valid reference token has been provided. Signed-off-by: Sami Mujawar Reviewed-by: Pierre Gondois --- Notes: v4: - Minor reordering of code to group initialisation and [SAMI] checks for the number of Context and PMU interrupts. =20 v3: - Move error handling for IdMappingToken. [PIERRE] - Moved error handling for IdMappingToken in a separate [SAMI] patch in v3 series. Ref: https://edk2.groups.io/g/devel/topic/83600728#76662 =20 v2: - No code change since v1. Re-sending with v2 series. [SAMI] DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c | 87 ++++= +++++++++------- 1 file changed, 57 insertions(+), 30 deletions(-) diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator= .c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c index a4dd3d4a895e0a1ae305c937d9a413665fb8e171..abef9e5a7f90a38e1d697227d3c= d2c110db364a4 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c @@ -1164,6 +1164,7 @@ AddSmmuV1V2Nodes ( EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT *ContextInterruptArray; EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT *PmuInterruptArray; UINT64 NodeLength; + UINT32 Offset; =20 ASSERT (Iort !=3D NULL); =20 @@ -1206,48 +1207,74 @@ AddSmmuV1V2Nodes ( SmmuNode->GlobalInterruptArrayRef =3D OFFSET_OF (EFI_ACPI_6_0_IO_REMAPPING_SMMU_NODE, SMMU_NSgIrpt); =20 + Offset =3D sizeof (EFI_ACPI_6_0_IO_REMAPPING_SMMU_NODE); // Context Interrupt - SmmuNode->NumContextInterrupts =3D NodeList->ContextInterruptCount; - SmmuNode->ContextInterruptArrayRef =3D - sizeof (EFI_ACPI_6_0_IO_REMAPPING_SMMU_NODE); - ContextInterruptArray =3D - (EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT *)((UINT8 *)SmmuNode + - sizeof (EFI_ACPI_6_0_IO_REMAP= PING_SMMU_NODE)); + SmmuNode->NumContextInterrupts =3D NodeList->ContextInterruptCount; + if (NodeList->ContextInterruptCount !=3D 0) { + SmmuNode->ContextInterruptArrayRef =3D Offset; + ContextInterruptArray =3D + (EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT *)((UINT8 *)SmmuNode + Offset); + Offset +=3D (NodeList->ContextInterruptCount * + sizeof (EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT)); + } =20 // PMU Interrupt - SmmuNode->NumPmuInterrupts =3D NodeList->PmuInterruptCount; - SmmuNode->PmuInterruptArrayRef =3D SmmuNode->ContextInterruptArrayRef + - (NodeList->ContextInterruptCount * - sizeof (EFI_ACPI_6_0_IO_REMAPPING_SM= MU_INT)); - PmuInterruptArray =3D - (EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT *)((UINT8 *)SmmuNode + - SmmuNode->PmuInterruptArrayRe= f); + SmmuNode->NumPmuInterrupts =3D NodeList->PmuInterruptCount; + if (NodeList->PmuInterruptCount !=3D 0) { + SmmuNode->PmuInterruptArrayRef =3D Offset; + PmuInterruptArray =3D + (EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT *)((UINT8 *)SmmuNode + Offset); + } =20 SmmuNode->SMMU_NSgIrpt =3D NodeList->SMMU_NSgIrpt; SmmuNode->SMMU_NSgIrptFlags =3D NodeList->SMMU_NSgIrptFlags; SmmuNode->SMMU_NSgCfgIrpt =3D NodeList->SMMU_NSgCfgIrpt; SmmuNode->SMMU_NSgCfgIrptFlags =3D NodeList->SMMU_NSgCfgIrptFlags; =20 - // Add Context Interrupt Array - Status =3D AddSmmuInterruptArray ( - CfgMgrProtocol, - ContextInterruptArray, - SmmuNode->NumContextInterrupts, - NodeList->ContextInterruptToken - ); - if (EFI_ERROR (Status)) { - DEBUG (( - DEBUG_ERROR, - "ERROR: IORT: Failed to Context Interrupt Array. Status =3D %r\n", - Status - )); - return Status; + if (NodeList->ContextInterruptCount !=3D 0) { + if (NodeList->ContextInterruptToken =3D=3D CM_NULL_TOKEN) { + Status =3D EFI_INVALID_PARAMETER; + DEBUG (( + DEBUG_ERROR, + "ERROR: IORT: Invalid Context Interrupt token," + " Token =3D 0x%x, Status =3D%r\n", + NodeList->ContextInterruptToken, + Status + )); + return Status; + } + + // Add Context Interrupt Array + Status =3D AddSmmuInterruptArray ( + CfgMgrProtocol, + ContextInterruptArray, + SmmuNode->NumContextInterrupts, + NodeList->ContextInterruptToken + ); + if (EFI_ERROR (Status)) { + DEBUG (( + DEBUG_ERROR, + "ERROR: IORT: Failed to Context Interrupt Array. Status =3D %r\n= ", + Status + )); + return Status; + } } =20 // Add PMU Interrupt Array - if ((SmmuNode->NumPmuInterrupts > 0) && - (NodeList->PmuInterruptToken !=3D CM_NULL_TOKEN)) - { + if (SmmuNode->NumPmuInterrupts !=3D 0) { + if (NodeList->PmuInterruptToken =3D=3D CM_NULL_TOKEN) { + Status =3D EFI_INVALID_PARAMETER; + DEBUG (( + DEBUG_ERROR, + "ERROR: IORT: Invalid PMU Interrupt token," + " Token =3D 0x%x, Status =3D%r\n", + NodeList->PmuInterruptToken, + Status + )); + return Status; + } + Status =3D AddSmmuInterruptArray ( CfgMgrProtocol, PmuInterruptArray, --=20 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)' -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#91095): https://edk2.groups.io/g/devel/message/91095 Mute This Topic: https://groups.io/mt/92203103/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-