From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR03-DB5-obe.outbound.protection.outlook.com (EUR03-DB5-obe.outbound.protection.outlook.com [40.107.4.58]) by mx.groups.io with SMTP id smtpd.web11.4009.1619423807699456502 for ; Mon, 26 Apr 2021 00:56:48 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=6CC9evj0; spf=pass (domain: arm.com, ip: 40.107.4.58, mailfrom: sami.mujawar@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8zsYP0EElryw/bjNXVBWFIbnw4ERnPdm3pvAHC5Xj2w=; b=6CC9evj0APi96tueqnbplYJjaNt1qXpyxxRczd81d8R/Miz2Ah1uKctrGKeSoNRYYn8YRVLD7K3sC/fus/n4QIPkzHmS27h3Qw15XuTim22VTpx9uZR8bRhdAtrg+o/INTHIqVxNgSc9lLS0dRb1VR1r4Erx1IvS5UTj/wY0cOQ= Received: from AM5PR0202CA0024.eurprd02.prod.outlook.com (2603:10a6:203:69::34) by DB6PR0802MB2309.eurprd08.prod.outlook.com (2603:10a6:4:86::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.20; Mon, 26 Apr 2021 07:56:38 +0000 Received: from AM5EUR03FT052.eop-EUR03.prod.protection.outlook.com (2603:10a6:203:69:cafe::8c) by AM5PR0202CA0024.outlook.office365.com (2603:10a6:203:69::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Mon, 26 Apr 2021 07:56:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=pass action=none header.from=arm.com; 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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT052.mail.protection.outlook.com (10.152.17.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Mon, 26 Apr 2021 07:56:38 +0000 Received: ("Tessian outbound 34291f7cb530:v90"); Mon, 26 Apr 2021 07:56:37 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: ee881b8684854a58 X-CR-MTA-TID: 64aa7808 Received: from 8d3ec16baf90.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id A8866978-E04A-4E3C-B693-FCDBA030C819.1; Mon, 26 Apr 2021 07:56:26 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 8d3ec16baf90.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 26 Apr 2021 07:56:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZO0siIDOYaweld+BxOOSvVl3ZtNG4/2vD/8E0biHHdvDDiCM3y0510mL9/3dtpR5Wje4R6mPojE/1q6MIWul8bHzliEl1XWYb2hVowvRu/6w8UBZilJ8ql/p6zwGsQ8PUhGXA6bzkviL0rxBwIPprpzd1Oh6taycH7lMNQywT2vuHSi0rPkbcnLwEFPWVzF2sPauoPjGpYhK0hLPCJqxyXdZCkdomYnokvfonhnH2+HuWp6cqOeSVPR0wNhrrKuhKEj1TsfYey9vHYOKMqUUyKZPCvorXOAv2pa1zf0DosFBaC6L0Uq+tdh/sWnLDHdTiNnuADEEPA+lJosi0Mk8Eg== 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-SenderADCheck; bh=8zsYP0EElryw/bjNXVBWFIbnw4ERnPdm3pvAHC5Xj2w=; b=KiD+ZLx5S7lmUIdxWvMkWbkZgwLFpbPD9V+/aCOKm8IkxkFgkz+duMYYzucBxrmuFQVM7kw+SZlx0ugVz3xWKUqYVL3stVrK2QqVhIJwyrv/N4csR1ZbjmUaJpOEguSZdvIRcWLbj4+e6ehoJzJw4oNHPHBSokqlQz3NaQLPEITmFdonshsQ9IjzRab9f5HGy7DupBIoenJu09XviF5/4J0rFAk115cDPFeDx//vcuxKMeCQ6x22Uon69afX/kq8vFQPJdCEJZy9/7ualNLLDoUxIfN6P/OzL6un22DGsJqdUKyRm/CeR1EzvyprKz5kFRarsrWsjbJs8aNrc1reEA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8zsYP0EElryw/bjNXVBWFIbnw4ERnPdm3pvAHC5Xj2w=; b=6CC9evj0APi96tueqnbplYJjaNt1qXpyxxRczd81d8R/Miz2Ah1uKctrGKeSoNRYYn8YRVLD7K3sC/fus/n4QIPkzHmS27h3Qw15XuTim22VTpx9uZR8bRhdAtrg+o/INTHIqVxNgSc9lLS0dRb1VR1r4Erx1IvS5UTj/wY0cOQ= Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25) by AM5PR0801MB1761.eurprd08.prod.outlook.com (2603:10a6:203:3a::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.25; Mon, 26 Apr 2021 07:56:17 +0000 Received: from AM6PR08MB3784.eurprd08.prod.outlook.com ([fe80::1cd5:e144:5ad7:eb0]) by AM6PR08MB3784.eurprd08.prod.outlook.com ([fe80::1cd5:e144:5ad7:eb0%6]) with mapi id 15.20.4065.027; Mon, 26 Apr 2021 07:56:16 +0000 From: "Sami Mujawar" To: "devel@edk2.groups.io" , "adr.her.arc.95@gmail.com" CC: =?iso-8859-1?Q?Adri=E1n_Herrera?= , Joey Gouly , Ard Biesheuvel , "leif@nuviainc.com" , nd Subject: Re: [edk2-devel] [PATCH] ArmPkg/ArmGicLib: fix maximum interrupts supported Thread-Topic: [edk2-devel] [PATCH] ArmPkg/ArmGicLib: fix maximum interrupts supported Thread-Index: AQHXOLWdaKfolfMKIk2U+J+R34lhS6rGb3+J Date: Mon, 26 Apr 2021 07:56:15 +0000 Message-ID: References: <2a2fef8f58a134336f19e049fbeb2c951bffaa52.1619206373.git.adr.her.arc.95@gmail.com> In-Reply-To: <2a2fef8f58a134336f19e049fbeb2c951bffaa52.1619206373.git.adr.her.arc.95@gmail.com> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=arm.com; x-originating-ip: [81.131.179.80] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 77bc825a-65f6-4b9d-5967-08d90888d20d x-ms-traffictypediagnostic: AM5PR0801MB1761:|DB6PR0802MB2309: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:8882;OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: Oj0eTFiJHOPl2oMOcn5GkpyPWsmvCXicTPLmN5UwMY+cztW1NBiWcK0aE3BfbH4Z5PxNC2b7y3JamzwMwDzCMSr/kqMnGVVw74c2jsmxu69JrezhruNH2QZ2s0B2UyXqCVg0fmMF0TVjyRO/FIC4lpkaiD+xO5gMYHv5VFaxGHqwwYwf6ZaTzXY/g5kk3UJfqFNX2hmMOPlOs8V4T6HAvdQ3+IHV9OQZqiFr2mH0Gd080PoZQIDxmi2q+kM3Y7nWCii+CdC8PJzQFLb7ykFPIY5peh6P/R9+rTH4S7KftdjJ1vAsr8URd/dT1WAVSQ0ZQj6rCscry7D9zqf7i2cWZxxYqdZZ8ByceaCYP4ij18Lc9K7NSrDJwAHXOrOpbWNsuyKBQMDqVe2baoNkrHc+NbRiWM18+uQMAM5CNpIe+XutLH0dgaXo+Rh7p3xcQI1/4ckugMC+gX9qyInkAa8sKRdjm50khx4PW3j9G4APb4el9E8hsvo8XL798e61afCCBDzIBb+zEXmqvhB4+WL/5lgix5/DSVfmPnE4UcLo4+d00+u1KL+3BtXKDLyMmvuzh23to8eXL7j++3H+Vxkh23jLhG/paNPpJbsO7EB6czzblo3QlCP+pbbI1NCSJlVZ+sfjg/zZZIluO6DCYuauRYeWm1DV2b17EcicamIPuLHaS9e7hO7RraFR8jAlI0z3 X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR08MB3784.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(396003)(376002)(366004)(346002)(39860400002)(136003)(86362001)(52536014)(26005)(38100700002)(66574015)(2906002)(4326008)(71200400001)(66476007)(64756008)(316002)(66556008)(66446008)(9686003)(122000001)(54906003)(66946007)(110136005)(966005)(76116006)(83380400001)(91956017)(9326002)(6506007)(53546011)(33656002)(7696005)(478600001)(8936002)(55016002)(8676002)(186003)(5660300002)(166002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?iso-8859-1?Q?oAKnmdPmRtZHhVOHr52cnJUknE2ECI2RzpJI9S5ANB+MWiSyUI1LxRffLX?= =?iso-8859-1?Q?lwHRDLg7YxSOcrYCUW8Ue0FizmWMYh2TdNT/FyxFvlo9ohuBdZ+tfPNeDF?= =?iso-8859-1?Q?yiYY8dEg/qhra9dPY1JhHKF2ypN4A+LVM2BgA9wG3fFzT1babZF+lRRLTv?= =?iso-8859-1?Q?08tWESs1wwjbOUctUZN951HX1wGUR1V29FXEuvdN4TVcAwO7NVjUm3eEuY?= =?iso-8859-1?Q?SLGYYR4c+Omib3ULK+MthsoQsWA5KVT9GAssrQnl4XO4FIdOzxdY2KBZuT?= =?iso-8859-1?Q?1iJZmtjdrMUSGRqjboQiP7ap1rQpSoVPvyfinOgrSvd4efvUchx2E9SAVx?= =?iso-8859-1?Q?Q9ZK3wFne3SMt4j7o8PptThem9NUsTCi0h3TUXIrYxzas4hu4DrpHhwUGh?= =?iso-8859-1?Q?OG+i6Y832qB9QR/hA9eaqc7ocLAhOn69Xg9lKFTFlj9phYIoguGV7LI6RZ?= =?iso-8859-1?Q?US3AClCpmdVa5DS2QSjjyqaEaDsQ5fW2U64MKmR/c6GCFsPFsjaFi3hQYF?= =?iso-8859-1?Q?6JSvO+LRLZ6sYoPxylu9Z62cZqUiTnUGX5d1QvsbJxOOawfN+nlXDeAQKS?= =?iso-8859-1?Q?g2vl/aukbG2epfug8OZyRAHq91aTBiGMvaArJ2+Z2QuEdV+2jJo+CPVrnn?= =?iso-8859-1?Q?/5M3qWWB0XxEUQ9+Mk3ayikqW4aJkhdkSFfVxi2lrvv8bnejO3sPtK1fkp?= =?iso-8859-1?Q?3De5HTcygkxWay/eDNnjVIUGzXqRHPLdAQhThsLTogxmB981EvA/6LtUEF?= =?iso-8859-1?Q?WJ+bdA1Mk2wA8ZUPuWkY+rBdfCR/1J4DSdaS5f0etnKippGJH+3KoBGLvH?= =?iso-8859-1?Q?SDY5+fagjYEcQpZYzXg2MFhV+IdVOeg47d0lajHqgG+IFUeyyxcHQwUk8W?= =?iso-8859-1?Q?ddj53vodlqiOaEQzSpdI22cOCIuE9rvvhvp9OaDG70m4hwoyZVOxcppjDi?= =?iso-8859-1?Q?dfbbssaZZO9+zA6UW/WASGl7hatN12mX6eGGIw6MtY2ouE2Oi11FFmWfPa?= =?iso-8859-1?Q?bhykHITX0gxjWY2O5JfK3Z1HkyNPySW5bO4+o0WCAPeynuX1K+tYNkWMOa?= =?iso-8859-1?Q?bfGBvgvBawtLEJcnWqJ7jNruHy3LURGds0HDOLyrDxFkm0VZWAhI3PcHUb?= =?iso-8859-1?Q?kqCeeLruMGvbI5CpHAX79ix769uNLHZPPbGYgx3z1SiU0M4KhxJAdaEvaD?= =?iso-8859-1?Q?wseUSYnPQ3JtTosrcjc4qXbikwSMgiPJCy85utRxkUllo9KO3cs+gPXMJ6?= =?iso-8859-1?Q?aMtIUlfcqYDyoNNvDQadB9gQJ3Ks2op7GtuZGUfm7ummbtUYL/0gPGxewg?= =?iso-8859-1?Q?4qX32Td9fuD2py7XVzqOpQ7QuPsuUu+wG5KaK5kENOZVkvX/QGdEZgKEEJ?= =?iso-8859-1?Q?zJQZaQ7nj+2qzfMj1bjfgTcJeP+RjWkA=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1761 Original-Authentication-Results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=arm.com; Return-Path: Sami.Mujawar@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT052.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 2db88b7f-30ef-4740-2efe-08d90888c4d9 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9myZZzo8z+iD3FaU97ux1UZZkkUB/AJF3vyuStcD0nSyyAEM/SYXOr4/2/if42OAlyOQT9BGVT1Bq1CRXh+mm4z5XqNuVcpwPKg7pSvA5bBVSEv165Y5W/ewgVlcIoiopGpjcEmhKKM2kzdecDTJCsryiEHTBBDgGIORMVQh5GDCBbAXe40p+3G8rOYgKFOx+33L09rbjFhSSrnBV10U3ciqe4D4sx3njhRpfzgvazfUT1dtbllJtmFlEyQ2+37CByJHab17aGUCQTFTmrAb8AuJ4FAb7U7GX+zyH39LkeQRW8R1EnqZK49Iv3cy0GtWjFN8ZNsvDbTs4PecO2unsNLMsXnRL8qfrEr0XL1jZ0RHgsIThmp3bgKPUgpw5dRUYilcLEb5bpJELAr96xAIRsgUV07MQGwgMDz0qXUkM6YeFPXDqrby5x0TiGtmFcyYGdlnVu0+5M+JgS8UTvpAsPUpm6Lji4bnTPI9kRwUBNzQtODR3c2wT2t3+cdDF3sExoGvc4YeAldZrhFa/M2vjWrBQkDcqo9I2a32XDMkOvBhuVFviRu4HlQXFpTYa4l9jkbH2q6WPHA6xEVy6Ra60aCNVNtRnOQEuV44H2B+p+uekQ91YXP2PKy6MJjoSvixB4YWtLgH58dSyRUITcD907NCXPKQxvcfMEc6+RXD5RMqRTj/SY3H+NIGH1UGIKdW3AuRdFKHDwz2MrSY9NjqCxiw+x8YEHPNTrx7B7vHnMoZinIQwynZSJmkDdyqExjzatRitHNK6oRMA/l7ZUIWoA== X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(396003)(346002)(136003)(376002)(39860400002)(46966006)(36840700001)(7696005)(86362001)(82740400003)(336012)(8936002)(4326008)(8676002)(166002)(33656002)(53546011)(81166007)(70586007)(2906002)(6506007)(966005)(356005)(52536014)(70206006)(478600001)(36860700001)(316002)(47076005)(9326002)(55016002)(82310400003)(5660300002)(34020700004)(54906003)(110136005)(26005)(83380400001)(66574015)(9686003)(186003);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2021 07:56:38.1580 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 77bc825a-65f6-4b9d-5967-08d90888d20d 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: AM5EUR03FT052.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2309 Content-Language: en-GB Content-Type: multipart/alternative; boundary="_000_AM6PR08MB37849AD705E8464FBD9B025284429AM6PR08MB3784eurp_" --_000_AM6PR08MB37849AD705E8464FBD9B025284429AM6PR08MB3784eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi Adrian, I believe there is already a similar patch on the mailing list at https://= edk2.groups.io/g/devel/message/72596. This patch is pending review and test= ed-by. Can you check if this patch covers the problems you describe, please? Regards, Sami Mujawar From: devel@edk2.groups.io on behalf of Adri=E1n He= rrera via groups.io Date: Saturday, 24 April 2021 at 03:57 To: devel@edk2.groups.io Cc: Adri=E1n Herrera Subject: [edk2-devel] [PATCH] ArmPkg/ArmGicLib: fix maximum interrupts sup= ported The maximum number of interrupts supported is determined as 32 * (GICD_TYPER.ITLinesNumber + 1). When GICD_TYPER.ITLinesNumber =3D 0b11111, the maximum number of interrupts supported is 1024. However, both GICv2 and GICv3 reserve INTIDs 1020-1023 for special purposes. This results in runtime crashes because: (1) ArmGicLib functions do not guard against special interrupts. (2) ArmGicGetMaxNumInterrupts number includes special interrupts. (2) ArmGicV*Dxe relies on ArmGicGetMaxNumInterrupts, and thus programs special interrupts through ArmGicLib. ArmGicGetMaxNumInterrupts now does not include special interrupts, that is, it reports 1020 instead of 1024 when GICD_TYPER.ITLinesNumber =3D 0b11= 111. This avoids the overhead of guarding ArmGicLib functions while not requiring to modify the drivers code. Signed-off-by: Adri=E1n Herrera --- ArmPkg/Drivers/ArmGic/ArmGicLib.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ArmPkg/Drivers/ArmGic/ArmGicLib.c b/ArmPkg/Drivers/ArmGic/Arm= GicLib.c index 6b01c88206..dff1401e9c 100644 --- a/ArmPkg/Drivers/ArmGic/ArmGicLib.c +++ b/ArmPkg/Drivers/ArmGic/ArmGicLib.c @@ -120,7 +120,10 @@ ArmGicGetMaxNumInterrupts ( IN INTN GicDistributorBase ) { - return 32 * ((MmioRead32 (GicDistributorBase + ARM_GIC_ICDICTR) & 0x1F)= + 1); + UINT32 ITLinesNumber; + + ITLinesNumber =3D MmioRead32 (GicDistributorBase + ARM_GIC_ICDICTR) & 0= x1F; + return MIN (32 * (ITLinesNumber+ 1), 1020); } VOID -- 2.30.0 --_000_AM6PR08MB37849AD705E8464FBD9B025284429AM6PR08MB3784eurp_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

Hi Adria= n,

&nb= sp;

I believ= e there is already a similar patch on the mailing list at https://edk2.grou= ps.io/g/devel/message/72596. This patch is pending review and tested-by= .

Can you = check if this patch covers the problems you describe, please?

&nb= sp;

Regards,=

&nb= sp;

Sami Muj= awar

&nb= sp;

From: devel@edk2.groups.= io <devel@edk2.groups.io> on behalf of Adri=E1n Herrera via groups.io= <adr.her.arc.95=3Dgmail.com@groups.io>
Date: Saturday, 24 April 2021 at 03:57
To: devel@edk2.groups.io <devel@edk2.groups.io>
Cc: Adri=E1n Herrera <adr.her.arc.95@gmail.com>
Subject: [edk2-devel] [PATCH] ArmPkg/ArmGicLib: fix maximum interru= pts supported

The maximum number o= f interrupts supported is determined as
32 * (GICD_TYPER.ITLinesNumber + 1).

When GICD_TYPER.ITLinesNumber =3D 0b11111, the maximum number of
interrupts supported is 1024. However, both GICv2 and GICv3 reserve
INTIDs 1020-1023 for special purposes.

This results in runtime crashes because:
  (1) ArmGicLib functions do not guard against special interrupts.   (2) ArmGicGetMaxNumInterrupts number includes special interrupts.   (2) ArmGicV*Dxe relies on ArmGicGetMaxNumInterrupts, and thus
      programs special interrupts through ArmGicL= ib.

ArmGicGetMaxNumInterrupts now does not include special interrupts, that is, it reports 1020 instead of 1024 when GICD_TYPER.ITLinesNumber =3D 0b11= 111.
This avoids the overhead of guarding ArmGicLib functions while not
requiring to modify the drivers code.

Signed-off-by: Adri=E1n Herrera <adr.her.arc.95@gmail.com>
---
 ArmPkg/Drivers/ArmGic/ArmGicLib.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ArmPkg/Drivers/ArmGic/ArmGicLib.c b/ArmPkg/Drivers/ArmGic/Arm= GicLib.c
index 6b01c88206..dff1401e9c 100644
--- a/ArmPkg/Drivers/ArmGic/ArmGicLib.c
+++ b/ArmPkg/Drivers/ArmGic/ArmGicLib.c
@@ -120,7 +120,10 @@ ArmGicGetMaxNumInterrupts (
   IN  INTN        =   GicDistributorBase


   )


 {


-  return 32 * ((MmioRead32 (GicDistributorBase + ARM_GIC_ICDICTR) &a= mp; 0x1F) + 1);


+  UINT32 ITLinesNumber;


+


+  ITLinesNumber =3D MmioRead32 (GicDistributorBase + ARM_GIC_ICDICTR= ) & 0x1F;


+  return MIN (32 * (ITLinesNumber+ 1), 1020);


 }


 


 VOID


--
2.30.0





--_000_AM6PR08MB37849AD705E8464FBD9B025284429AM6PR08MB3784eurp_--