From nobody Mon Feb 9 23:39:09 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+91262+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 1657636320606752.6372306493846; Tue, 12 Jul 2022 07:32:00 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 06nPYY1788612xafG1zCz6Vr; Tue, 12 Jul 2022 07:32:00 -0700 X-Received: from EUR05-AM6-obe.outbound.protection.outlook.com (EUR05-AM6-obe.outbound.protection.outlook.com [40.107.22.73]) by mx.groups.io with SMTP id smtpd.web10.9855.1657636318240691143 for ; Tue, 12 Jul 2022 07:31:58 -0700 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=WzroGJ1FGPntlAmwc2DIqHBUrD9c3ObnQ//VTSIQ44jmqvRvSqy2rlNeZdvPkQEzj/LoI09AdYyw3Ibfha7nJEwMrxjUX6GxQKl1FOC8Dv+P3RA7K1JlGPPJ1H+fsLqsAbMPzFuo7xILH0DDjjS+/FIzLRR/W9wUtFGjJopyKEVTi4H+uWPw4t/CrHAmsdh2Je2dr+taD4AvxAhmZb9JJ5NIEqS3k4kv51f1VupfspJZtH8ElecaPCSadElFH84zbZYNzyVZxLTzk1BthGEx3aIjzsQltQioEFg86NtGPbaOIQQg0J5KGoVbWMTaCivryDIaQ8qrvALKHiLvleSRAg== 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=cbw6YKPOqGu8jvJ89t3WVvgafUpysrchl8r8a8tY06w=; b=JlkcCcPzxV4jkR9aDutCyQF1e98fFPLxsbNiIqeQljDyqwBauGRbof/aR+hW8NNxu0hncIePqZFtCL432nPl7VLy99E0NLVptNv4oXkhlPpp9iqqP2AhOq7SUfx5eGm1Gg1oIglKraBUOAIpSlE+urS6uQ6hkJY4VKRBN64kStIenMwBJAPvowqq0StiB1LRyawM0eHW16qAIGBNio30hlYdmjgkR97YoWaQtk8Kmhnyz7nPvV/RFeQbqvHXbx58ttIeFHdD0fNinqS5r9Qxlo03JIAUG65AHomx2YCJfq5ZanZ3YtC2kUOzFTeU98PBqIB3/o6fjUWSesQt2e+Odw== 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 DB9PR05CA0011.eurprd05.prod.outlook.com (2603:10a6:10:1da::16) by AS8PR08MB7159.eurprd08.prod.outlook.com (2603:10a6:20b:405::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.20; Tue, 12 Jul 2022 14:31:55 +0000 X-Received: from DBAEUR03FT042.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:1da:cafe::51) by DB9PR05CA0011.outlook.office365.com (2603:10a6:10:1da::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.26 via Frontend Transport; Tue, 12 Jul 2022 14:31:55 +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+91262+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 DBAEUR03FT042.mail.protection.outlook.com (100.127.142.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.15 via Frontend Transport; Tue, 12 Jul 2022 14:31:55 +0000 X-Received: ("Tessian outbound 0ba541f03a2a:v122"); Tue, 12 Jul 2022 14:31:55 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 0f3aa8b25d63eccf X-CR-MTA-TID: 64aa7808 X-Received: from d718c3f68366.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id AE1C363C-B996-4561-AF96-7180C98A74A1.1; Tue, 12 Jul 2022 14:31:48 +0000 X-Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d718c3f68366.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 12 Jul 2022 14:31:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NkxxggpfPzQGEsYraOTHqCXCZFybEalv8WaFAqh6kMmyn4ym0/5qhZjisDMPzLi8J8iQTPffTRN81Dep7ktk2bKWLjOfWqqL3fcEVgjAlNYsWyXZbjcWbbkGrFg/pssjSCuiNkQHEAHwvE8DcElk7g9JFi5n2Pvt6IahRLoYh2T3FGBBabdd1+XWyRZR8pbL0I+UR2NqqRTpiFR4G26HWCdcwRn9ZjjVjcqkXilzLt+tjx3j4Jl/+Z2QgU5fPxS0p5bED14kam4VwIwGMYYjm+hw0L6MkQMRL3S5+nYeD25xGmG/0Iw3QyPWi2+Gi9DIbU70nT0go+/MGdEPxa17Xw== 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=cbw6YKPOqGu8jvJ89t3WVvgafUpysrchl8r8a8tY06w=; b=R+h/iRDQJYMz6nPOx7+RyKMZgbqaoQBHB9/DQcMtNWDYFB5p5Z/wJy1n2JMYyzTrKLbQjIeNPF4w7fgax609xXsWQWfxQjqN/O8ue4Ky0TMYVeiISmxYUY1EaFLzkBH7LUsJrKauGliIWQNWbDZvkGqxrp5cf9zVL9p92TyMVgxr69o5m7X1KbcCox9QCt/Gga2A/wv2UeQt7p43No2EfPNUhaGP9O7RA361CXoUxlqsCRRAtMd6EYAdbEpHwXMdiadWsU8oNsVEl60U4jvbNc3bz7Hn17bFPQxRJklevoI1x98jL+X4Sgxi9Tn/lhNFVs8mgu/frc7jlDaFlRSFLA== 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 AM5PR0701CA0012.eurprd07.prod.outlook.com (2603:10a6:203:51::22) by AM4PR0802MB2129.eurprd08.prod.outlook.com (2603:10a6:200:5d::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.15; Tue, 12 Jul 2022 14:31:47 +0000 X-Received: from AM5EUR03FT039.eop-EUR03.prod.protection.outlook.com (2603:10a6:203:51:cafe::c5) by AM5PR0701CA0012.outlook.office365.com (2603:10a6:203:51::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.11 via Frontend Transport; Tue, 12 Jul 2022 14:31:47 +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 AM5EUR03FT039.mail.protection.outlook.com (10.152.17.185) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5417.15 via Frontend Transport; Tue, 12 Jul 2022 14:31:46 +0000 X-Received: from AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2507.9; Tue, 12 Jul 2022 14:31:45 +0000 X-Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.9; Tue, 12 Jul 2022 14:31:44 +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; Tue, 12 Jul 2022 14:31:44 +0000 From: "Sami Mujawar" To: CC: Sami Mujawar , , , , , , Subject: [edk2-devel] [PATCH v5 4/8] DynamicTablesPkg: IORT set reference to interrupt array if present Date: Tue, 12 Jul 2022 15:31:37 +0100 Message-ID: <20220712143141.18516-5-sami.mujawar@arm.com> In-Reply-To: <20220712143141.18516-1-sami.mujawar@arm.com> References: <20220712143141.18516-1-sami.mujawar@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-Correlation-Id: f6f3707a-09fc-48de-f0cb-08da6413450b X-MS-TrafficTypeDiagnostic: AM4PR0802MB2129:EE_|DBAEUR03FT042:EE_|AS8PR08MB7159: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: UUGpD7LDLLrWjFDyb0vF3BoFVd2L+BwUSx3PlFZN44mqqrxGMZgEiz7wILD+NFof9yVN6FekAIt0tlqkQFsuq9l6tlpWhaIAqeyiYtC76L/jJQCAJgtm0GisSlmGvUXqlLHgEqinLiZsCcIaXYWdL2xzlLFt5I24+SkDXeDwjFeQ6/+/xO/hMIN8rHI/m5tZl9bBfw/5Qm1vhwgzrHlVnyBr4ABr4IpZCSbK/imRCsVBErwhqwdtKVTc7X81aUhAQzcv8tfBEdEq8QmEoqx66fved4flcmNE+HgEIlhyg5jxshoUTThEzMuZgnLPQ71RHrs5sHGv9mO9n4Fa0oQ15oboiFdRzhgV6dWVzcHA8yeLyeAuhZL4smhNfG8TOsRZmATUWtphN3VQZQxKX5gteElaoRVMERW+wv/4MOrg0vvqahUHvZ70Bvgph2lHIBTUkvjS8C612WFmXVik4ix25Zjzg98yFEfjtP/JWeiznQyAba3A44BOkzkfNFBjHQU8uFpExik3AUOB3GEnAn6NbNhcBpIMY8z3fDdOx/6fdy2+tphW9/E6S1b495nK5m6Txg6X6bBDonmSToEMa3HzAQ4rrTRueTgiSCIOZvI/E2qn8eJ3y0eOhLG4ft0iZKP+AxkbKcyIfvMoSWzsf0u+ayEE+9md66yZzUzHDiFYkMM4hkxVzH8aTL/2xgqHHZ04AAVCO8UAw5N29LFY8n+AyATe5wq3fwKT5cSKF1iGLBj1RnhNNflS7NDFk5c0uROpr2ZBmqvnf3w9G5XSnWb4Wk4U17sAWUfd6FFzSC4sxtr8QlWmiag7bGtae70Q/a+lPwz+D1lc0sdbuOo8ePQPI5DsAf9EbnEjTgqcLKjxL1iUNMf1zll3qx4vgjNPZx72 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)(39860400002)(136003)(376002)(346002)(396003)(36840700001)(40470700004)(46966006)(36860700001)(47076005)(336012)(26005)(426003)(356005)(478600001)(966005)(82310400005)(36756003)(40480700001)(40460700003)(44832011)(83380400001)(2906002)(4326008)(82740400003)(86362001)(70206006)(5660300002)(54906003)(8936002)(81166007)(6916009)(8676002)(70586007)(186003)(7696005)(316002)(41300700001)(2616005)(6666004)(1076003)(36900700001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0802MB2129 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT042.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: be63321c-f720-4022-3a63-08da64134030 X-Microsoft-Antispam-Message-Info: vqNyTFL1yOLrRw4viL3+RKbDZVbssJiyRRnqTKrfQlsj5lmWs6TneEroTAZYmF4SAAeXIWGXDTDKA1Qa9kimvEVduT3AT0lX26IoAVC9PPWpg72BatnwG2QehSf2SfqyekKMAf6Y8xFLoQXEhkpz2n991h4J4ayg8+GuE486K9z8DOvA5iANOLb/+3FUVV9FUgAJwzu0SBy22bYiay88CIpTAzmdnpCopY50pxk+BY0iUFv7gaCLA7+vEe5ATnPM/1xprBmoRBxH3LKk5S+92k1yi1n+7p2rdNg4WEHmq2DEbS1cew7+qxdvH1+Y5Z3O9xPojCyny5Sq1zAjzg74VJRn2XEYqByaKYH8xg1sF+hYLOPvk0hC5YHHWmavk7yBJhVbgo1BkoxhswMZKfb0U8ndc47e9BPIcp/RzoAR7bHZI425B1pyhQQWnTzLo9WgDbkG+u8A0LCvsPsQaQny0VEtzGpAulF51mbxgM8po7DMZkLvH2u/xGtmn+NDDuxUn/1Shd6Bn4l7dMj82kxCaZw674n/vk5G5jWfa8MFrWhNs5HhQ9v5JLIEpHf8N8m5J7b4fHCnWVjGFLEUOaXgWC/ifwavCDzc06K0pNn8tDdp/p9D+ROqSlKeJedgPyW7DL0lk7aj0/IG0atBL9ITyGqrFomFj9ioncYsr8rVvO4bkp1m1sOcj5e6v8awHD/SfAf2EOaCqnIhVUBcFTTsPQaDuBHxdL45wGCnPkTMMiliT9okMvHurCwC6HDZ//N+XStr7C8aBA7jGoN7/LivonJjnDvb6OrtgyuWzICAP4GJj2t7fL33JJK3blnB8jBrJP+UeAfhvMjoOIAu9uWROMBa3EW/g0WxEixmlujJcng= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jul 2022 14:31:55.1756 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f6f3707a-09fc-48de-f0cb-08da6413450b 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: DBAEUR03FT042.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7159 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: 0cV7YNYwVwW3EnnguGR6LGNex1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1657636320; bh=uZ5rzzocbP0JrhlQ6OrXiDkd0/d7EOZl1wbR+9rSD1I=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=CmwBNR6Z3lthm2KrznhrNF7cnYF6lClJg3kuXiudhnkAXS+WXou4tRUdtqd6HFSNBDd ICKfOSUgqUI+BDFEpOZ/WLeEGFmTzptGdW6uoVQCeeGT4tnq4Elgt6Yv5OVrxvYyRuMNX 7p1PUxA8/GsbG5PFy8QemqPtNaREveDX3Wg= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1657636320935100006 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: v5: - No code change since v4. Re-sending with v5 series. [SAMI] =20 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 (#91262): https://edk2.groups.io/g/devel/message/91262 Mute This Topic: https://groups.io/mt/92334073/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-