From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR02-VE1-obe.outbound.protection.outlook.com (EUR02-VE1-obe.outbound.protection.outlook.com [40.107.2.40]) by mx.groups.io with SMTP id smtpd.web10.7680.1619527299261173473 for ; Tue, 27 Apr 2021 05:41:40 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=tIoPnFI5; spf=pass (domain: arm.com, ip: 40.107.2.40, 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=iXRpMfCMm7eKubzmAn9BWxkRl8rO/hjvvRl2dTR1IZE=; b=tIoPnFI5+e/mH6GYFLh3OQE8fxUnWSoS02lO2HIOBSqCSPravnXnX+8eSUGne/NGrWKWP5KoutNlVX9Nc9JLg9KgEXvT319kIOsDuqmHp5Hi6wH1JALIcaOnFpUgrxzOvA3YgBQBGA1tSLC5LIDIY/KsL0Pa3MmZuARKoIV4rh0= Received: from AM6P195CA0017.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:81::30) by AM9PR08MB7029.eurprd08.prod.outlook.com (2603:10a6:20b:41b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.23; Tue, 27 Apr 2021 12:41:35 +0000 Received: from VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:81:cafe::e9) by AM6P195CA0017.outlook.office365.com (2603:10a6:209:81::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.20 via Frontend Transport; Tue, 27 Apr 2021 12:41:35 +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 VE1EUR03FT037.mail.protection.outlook.com (10.152.19.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Tue, 27 Apr 2021 12:41:35 +0000 Received: ("Tessian outbound 9bcb3c8d6cb1:v90"); Tue, 27 Apr 2021 12:41:34 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: a7ab3ae87a9e841b X-CR-MTA-TID: 64aa7808 Received: from 61e0e806fe62.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id A77E4617-2198-4FF1-98B8-0869078C71DE.1; Tue, 27 Apr 2021 12:41:23 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 61e0e806fe62.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 27 Apr 2021 12:41:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZcmKy3bRKk7Pp9f3VOktVv7GJJh23Ul6ATQQJFKea6FPO0u/RG+657z3Z1dqXOFczpatWGq77MQrOWuVb/ZRIwHR9mldjvob6LtRrVZtxASYvrkx3bCZyW5jHSpwCR7IyE+vpDDW/7sOxQIFwdah9PWYZUdK4GkZ75xDHpd44hWx7kSVV0LssXBnxADWx26ok0PABRe0t+hRYiB85kdYNaTDc6QMqt9tgpX08uW+TuBpMckamF8ZF+RBn75A3iukN4/s2ScKoy7+xr4MPsMIyW0CViGhONn6jlzSQkU8X+sKgqbWBrd1SeK4q/wPIk90p+OdDO38mmuzTev+/3+F9Q== 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=iXRpMfCMm7eKubzmAn9BWxkRl8rO/hjvvRl2dTR1IZE=; b=Ur8Rcl2BJ1bG4CkH+9UpjKLBaJ7F+MURZPycRwsK1+XYD2bZPjAwp6EUwMy7GUxex682xGqLylFq+PqXyxTnR09EWUjr35JcpFfVnenpcdxMGZC5mASfj5PXiAVmocphlwnR1zmxY9xqvTRx/3OB0U/xLF0WrxwWwNVfCUHHSjrPq7wy0Gf/NnM4EXBQew4WYWtOnZS7xXUM4evbgaW1Bc6j8KXmlrooZgL4jiU344MNc8L/C8Mzhe5uAjjigb0V083fQcROUsdlSaYB5FH9S4AHytf70aqDjSq2WFFeQEARcXJAEnMH8hwDpd3922TGISfRoCLYVFvhpXiPyyE2eQ== 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=iXRpMfCMm7eKubzmAn9BWxkRl8rO/hjvvRl2dTR1IZE=; b=tIoPnFI5+e/mH6GYFLh3OQE8fxUnWSoS02lO2HIOBSqCSPravnXnX+8eSUGne/NGrWKWP5KoutNlVX9Nc9JLg9KgEXvT319kIOsDuqmHp5Hi6wH1JALIcaOnFpUgrxzOvA3YgBQBGA1tSLC5LIDIY/KsL0Pa3MmZuARKoIV4rh0= Received: from AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25) by AM5PR0801MB1636.eurprd08.prod.outlook.com (2603:10a6:203:3a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.20; Tue, 27 Apr 2021 12:41:22 +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; Tue, 27 Apr 2021 12:41:22 +0000 From: "Sami Mujawar" To: =?iso-8859-1?Q?Adri=E1n_Herrera_Arcila?= CC: "devel@edk2.groups.io" , 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+JgAGz6ICAAC868w== Date: Tue, 27 Apr 2021 12:41:22 +0000 Message-ID: References: <2a2fef8f58a134336f19e049fbeb2c951bffaa52.1619206373.git.adr.her.arc.95@gmail.com> , In-Reply-To: Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; 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: 40877f9f-f00e-4835-14da-08d90979cb42 x-ms-traffictypediagnostic: AM5PR0801MB1636:|AM9PR08MB7029: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: t7PIq1OmM++8SS59ehp8PEXdcK3hHpwUL9tGU/dYXtm1YHEDuCL75kvA+G8whXlH7/dGSBjsLRastuRIHeDPCN5nobG9aELhxMgkI4OvjQvTWv5v5d6xHVsZZMAXcHjRasPUVZeLH1m9nqSyS4uYqBkWS0FPI+JTfNAIqSWn4URgvmx0ur1YdPIadFqXRekhzxv811qePjhe2Uz8eKeOdtZe9+1B+KvMI9jf1cbl5gfCt5nhMfnHWyNoAOG3ru/WQwUFEj+KxJEIy6H8FuW9nMMJaL+o5jRufvmtWNC9/b6KX0pNBvTlHz7CBr0+b25mwxpCzj7WS+Vo8zNXkft6I8cVigYydfika+qAQJ7hUJ6TYcQMWFsHiEz3mxUlL3brXcnTFg7j8xdm7bQKIIlBX2T+riRjzEFTNMngRUcuByqVCQAhEQ1EocwjE8dBbTu8Xw6KcYduqk3k8NvEqpuXCp1fWtRKg9Uuvttxioi7AYfwxOxhQvr/Mefmk02Sk5dHob7qzxbpgZomaID1wb4q8KEkjULr0mY96R3xSHLhDpuWryixlU2wn5QRBWTjNNcOlp5sAp9gSKH4PuKm8aQVFx1Lmqyu1XVDAENpRTltZS/RGRihkvZT4ZNsMtMjtW8xuIBiXKJxLAAC0Sh+TR2i1kkROmMNCUUk2scUH1VD0x+akfoqZ7ddEFyRtPqd0mPn 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)(346002)(376002)(366004)(136003)(39860400002)(396003)(316002)(5660300002)(83380400001)(6506007)(7696005)(26005)(54906003)(76116006)(91956017)(64756008)(66446008)(66476007)(52536014)(71200400001)(53546011)(66556008)(66946007)(8676002)(186003)(6916009)(9326002)(478600001)(966005)(122000001)(86362001)(55016002)(2906002)(33656002)(9686003)(4326008)(66574015)(166002)(38100700002)(8936002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?iso-8859-1?Q?Dgm6DMAL8zwwi98LlZUJHNqhxh3Udw5ijp2WgaMeC7f/VIRdMFe7uhTVpQ?= =?iso-8859-1?Q?cw+un0brHF8Jo1g+eIXEVAd4R/n3p+5FQLGkjD6xtFzHTSFEAkFbnlPbKA?= =?iso-8859-1?Q?krq8FkGLD3ifRkcmP8ulWAX+b94VUGAJY1fhAJovhJtqLEIDslzxKThG5y?= =?iso-8859-1?Q?hx6Q7LOS9U4p9KxQ396oh8zv0XOJk2WZDkNNryjgQidpWCos5GweuNcy7q?= =?iso-8859-1?Q?fg76Zwkn/Zhjdu/KPgoNFqvjAwBnxiGcDhT96Uh3HkbiGci4W2o7bUzmFZ?= =?iso-8859-1?Q?5eLWkQbd9A4ygYV7giUjzsuZmN5hMZhQvsALyUfHOeAD5DdRrv+eYP37eH?= =?iso-8859-1?Q?fXs4H/vdFTYK3gyAg4C/3tQ+eaqB9V0Y8zoyJkdiYe/BNTgewiPTxfF839?= =?iso-8859-1?Q?AZikBJu5PNJ+k68WkDFuJMka+p+8mhtOadbzPS7n+TOAXtbH9e/P6AxOFi?= =?iso-8859-1?Q?svjsaTojjekT2Dg+O+Vr8Y91IdhtOmM2KpqNCYCCT+GTCxkROOV1O2MLL+?= =?iso-8859-1?Q?Pe7a+Ji8WBT+k5lNrHMKnY8GrT7pryug0B5RSSrs5WxEx6GFdHrvVrTCUV?= =?iso-8859-1?Q?t1AuzzECvIfkaL3rz1r6Hk6Tpz3kR2AZQsqiAkKgtPhO4NDiCIPZN/dyHg?= =?iso-8859-1?Q?2DGqBahMIKqMM8w1S4knQFpD5siAYxN8TPIec8jAjtVhV0c1uDlrb+YHRO?= =?iso-8859-1?Q?UggJvmasif62bOj2MaEKiLVLTmdHh3Zyu4ifLiVnhyims1koCLa7Jz4hzT?= =?iso-8859-1?Q?XVkMXBz8BLvnY4MtaV/ocYVuPsWcxgc4KRpzIdgrhhhHbDuXF7DkK/L/7K?= =?iso-8859-1?Q?8jy4gl5ZN0SbhQtDTMFtiJLlb1aw09orxRMdS0mno3i9Y6ZEROHyuTrbi6?= =?iso-8859-1?Q?frwvPZaPBT0p8iZRyC86B2kU+LU5AvKlMkla0HO1IxutJYH79NRs7S2bf/?= =?iso-8859-1?Q?GTVqu4FTUcI6CYl6R2sFF35e6yQ3faNjToS0g/ejEDhNQY2Flo2S98QnLK?= =?iso-8859-1?Q?YlrmlfQofEljSqS5TOEwtchihpeUsSDndlCYgDwCcpCUZpwYP7OUgSb/g0?= =?iso-8859-1?Q?KibQf05C+poEfCWYrjYlT4+coq3VpNOtlUNZMdUTqAOR0His2q54fiLotf?= =?iso-8859-1?Q?jnQKQiVH5ZBHfAmm3FEc7OTbJxUtuUuRDGcskBO4elt2CtTjhm/VJJuCOX?= =?iso-8859-1?Q?EhPjLGJ+SvGaiFPzDJ0y5Nz/oSa5dZh5+ktdEibjd/vGlWgOaUzXUxofzM?= =?iso-8859-1?Q?i9jzJ3ht+Q7T/HAtSn76GyIgqD/OlU2r7jhMJY3eGLjNcWpKyUj78MFGQX?= =?iso-8859-1?Q?3glxiY1cJX9q9YOJbu26X8XHqZ3La7jRYLcRYdGl7ViNgozZGoE181dbV9?= =?iso-8859-1?Q?/qNldbnO7IqI4/uTAM3auzeCAdhlHTNw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1636 Original-Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=arm.com; Return-Path: Sami.Mujawar@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 64de91a1-a8ee-4bcd-fe91-08d90979c368 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mdgNNIrKp5E3ovP1NewW0CibkrZREZZ9rlR7HARaa2pLvLBu9OCWV2/1KvtlAm17Vl9NtxoIBinuX7mNF6FsI51k1QaFWaahuznvmjB+FlSJlSMjJCuagglItY/iUrVsEHxYLDX8H7QBKOE3WV17auzl+KpkTNU95sUlgKBi6WuYnA7o3naJKIOZbgo9WJiveNZRBpddvkF3K/dxA7oy131vE9nk+sO4jGJOK1OCYEduIoDhjbY/or3x57BEXl5qhXrzq62V1er8X4uLeFRNRfxPNyiB2n7dVi/tThou4T0tMN598V/gHLeI2IXdEaFqBSHrds8i/qXz7LpPQSxP25hYXh3MT9bi2Q8uXgsyAtPOv1QG+eop4Xrom7qu50AUUGpYdegU0yQiETGWXmBQw4Qft0fMKyfvNZGKvbr7D7qvT7qaazFkEJQWHV2H4mKwaCa+m6McUQcYwY1wtufBM59WLJHMQIkdB0HI1/kXIDvbVejDa6mDiw5720Wv+lzQo4a1+YzDytMwUHU5i3bNcNpepytnlQKHJLawFEEO5f6XeBTrmQ7702yFLM6XsXl8XvuiXSvUayQtXhMi3ZsDQNdtrmO9N8cta/dplF0BcBvH3zJDNoCZtZrJzof02tTk9fXptuVrmVIwu4QXpdnhjRQo4rHUZB2bVtF4/iyXa2NA0AUlz4P14cVrb92BvAjXuDMW2ZFeuKWDoJCuu3S/SwEi+cQLmKlemXVuFn9PvlvXhHxd62NVW47pbLmNRGBMoHuVdytZmD/mMLkZCVKlcA== 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)(136003)(346002)(376002)(39860400002)(46966006)(36840700001)(6506007)(316002)(54906003)(53546011)(55016002)(86362001)(66574015)(81166007)(5660300002)(82740400003)(8936002)(47076005)(2906002)(9326002)(6862004)(356005)(7696005)(8676002)(478600001)(70586007)(70206006)(52536014)(83380400001)(9686003)(33656002)(966005)(336012)(4326008)(186003)(36860700001)(34020700004)(82310400003)(26005)(166002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Apr 2021 12:41:35.3765 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 40877f9f-f00e-4835-14da-08d90979cb42 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: VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB7029 Content-Language: en-GB Content-Type: multipart/alternative; boundary="_000_AM6PR08MB37848D2F5872ABDD7EAE662984419AM6PR08MB3784eurp_" --_000_AM6PR08MB37848D2F5872ABDD7EAE662984419AM6PR08MB3784eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi Adrian, I think the mailing list discussions here should be sufficient. However, it would be great if you can test that the earlier patch works an= d reply with a tested-by. Regards, Sami Mujawar From: Adri=E1n Herrera Arcila Date: Tuesday, 27 April 2021 at 10:48 To: Sami Mujawar Cc: devel@edk2.groups.io , Joey Gouly , Ard Biesheuvel , leif@nuviainc.com , nd Subject: Re: [edk2-devel] [PATCH] ArmPkg/ArmGicLib: fix maximum interrupts= supported Hi Sami, That patch provides the same solution. I'll be sure to check the mailing l= ist before sending the next time. Any benefit on marking this as duplicate? If so, how could I do it? Thank you, Adri=E1n. On Mon, 26 Apr 2021 at 08:56, Sami Mujawar > wrote: 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 Herrera 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_AM6PR08MB37848D2F5872ABDD7EAE662984419AM6PR08MB3784eurp_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

Hi Adria= n,

&nb= sp;

I think = the mailing list discussions here should be sufficient.

However,= it would be great if you can test that the earlier patch works and reply w= ith a tested-by.

&nb= sp;

Regards,=

&nb= sp;

Sami Muj= awar

&nb= sp;

From: Adri=E1n Herrera A= rcila <adr.her.arc.95@gmail.com>
Date: Tuesday, 27 April 2021 at 10:48
To: Sami Mujawar <Sami.Mujawar@arm.com>
Cc: devel@edk2.groups.io <devel@edk2.groups.io>, Joey Gouly &= lt;Joey.Gouly@arm.com>, Ard Biesheuvel <ardb+tianocore@kernel.org>= , leif@nuviainc.com <leif@nuviainc.com>, nd <nd@arm.com>
Subject: Re: [edk2-devel] [PATCH] ArmPkg/ArmGicLib: fix maximum int= errupts supported

Hi Sami,

 

That patch provides the same solution. I'll be sure= to check the mailing list before sending the next time.

Any benefit on marking this as duplicate? If so, ho= w could I do it?

 

Thank you,

Adri=E1n.

 

On Mon, 26 Apr 2021 at 08:56, Sami Mujawar <Sami.Mujawar@arm.com> wrote:

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 re= view and tested-by.

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

 

Regards,

 

Sami Mujawar

 

From: devel@edk2.groups.io <devel@edk2.groups.io> on behalf of Adri=E1n Herrera via groups.io <adr.her.a= rc.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 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 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_AM6PR08MB37848D2F5872ABDD7EAE662984419AM6PR08MB3784eurp_--