From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id B398A740051 for ; Thu, 23 Nov 2023 12:10:39 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=+YF2yVbaJ+5Es3zkBlPycieNE3/wgIvlt3xF4FpCulk=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Message-ID:Date:User-Agent:Subject:To:Cc:References:From:In-Reply-To:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1700741438; v=1; b=nlFFKfKUawQ5MhqZokDI14RVF6uCWAqSeJM8c6SsYiJjMMF4PrAYrWChevUP0KhUuuKR6dvZ AsGS7QvVhmDBSM1OGlqCEgVVkNiiiqI1L7S9FBO19oKeixl8KwRld1WJnVjH6v1h8cov31eat9D BlEBvGlT/9yILFlt6KIEb19c= X-Received: by 127.0.0.2 with SMTP id H5QpYY7687511xR6YfF8K8MR; Thu, 23 Nov 2023 04:10:38 -0800 X-Received: from NAM04-MW2-obe.outbound.protection.outlook.com (NAM04-MW2-obe.outbound.protection.outlook.com [40.107.101.136]) by mx.groups.io with SMTP id smtpd.web10.89259.1700741437441783048 for ; Thu, 23 Nov 2023 04:10:37 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JJTkBrklXJ9OHu0I6jTPhirMKYTyxwhZqzrPuMPAkbdISbxZXyNSZEwAcvJtPWaPCbZ0aJQEEwiEljdi4HUYA8yWtlZHXhNg1rj1q7raJdcm1SYXzVBUXJBchGYNKx2ymcGxyfZ4Tsr35PqlAjKUV0Vff/2BNsCTsuK9/GQPeUs52GLM+Aw8V5iq72KA8CcPYD922jqhqa9IF3fU/ICbi61ck8ZjypvOKlmaXdXpnUo4LYGBoxEpnXcespe9c703aRfsh4OxoohnbJIuPJhk9rknEKixZVpJWJi/h/8Y2uUXmFJlrwRb4fS4qJJbs88/cp4kPUK6XvzGiEtS86ppCg== 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=CxKGZ/OmrHGbv1NR22Ozi5hc9lkw9L3rEft41hGg+lQ=; b=WE3sIYgaqKyuo9Ngp4Y/wd/tRIQuZqdQyacKGCYPK5Ulvp/UzwupGKm4/7Nm8o47NAjdmjr69LSnbW7ZBhuGWQschr0tZ0ZFDn3YMcET4Pr3XWA9LMtdoU7FU7xIlgweGFYN1rNmxxVuRtX/ZD1Mtn1S0Jx/MSLpagUUgT+9wYUgDBiYvkLO5xvvdywtYncwwwaheFVnuOeyZq61VnhC8cDIH6XqPrSAw5h+0q16NH5XMhw4t5qJoCMmIf8wMDIC3VwnAZkmKzZfuCT2xSg78ebNdZM2hqAaUzcXuSCYZTob06pPHRDOjnN3Ip8x8VaFdVRQOoPGi9QimNGHBbGnUA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) by LV3PR01MB8512.prod.exchangelabs.com (2603:10b6:408:1a5::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.19; Thu, 23 Nov 2023 12:10:33 +0000 X-Received: from PH0PR01MB7287.prod.exchangelabs.com ([fe80::d431:52fd:b1f0:2f12]) by PH0PR01MB7287.prod.exchangelabs.com ([fe80::d431:52fd:b1f0:2f12%3]) with mapi id 15.20.7025.020; Thu, 23 Nov 2023 12:10:33 +0000 Message-ID: Date: Thu, 23 Nov 2023 19:10:23 +0700 User-Agent: Mozilla Thunderbird Subject: Re: [edk2-devel] [Proposed Fix][PATCH v1 1/1] MdeModulePkg/DxeCapsuleLibFmp: Fix crash with VirtualAddressMap omitted To: Ard Biesheuvel Cc: devel@edk2.groups.io, gaoliming@byosoft.com.cn, ardb+tianocore@kernel.org References: <20231123044854.3003826-1-nhi@os.amperecomputing.com> From: "Nhi Pham via groups.io" In-Reply-To: X-ClientProxiedBy: SI2P153CA0012.APCP153.PROD.OUTLOOK.COM (2603:1096:4:140::15) To PH0PR01MB7287.prod.exchangelabs.com (2603:10b6:510:10a::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR01MB7287:EE_|LV3PR01MB8512:EE_ X-MS-Office365-Filtering-Correlation-Id: 3b42673d-a9d7-445e-ae58-08dbec1d3165 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: dxLEhUp55nWBXxtBR69+jfhtbRbHmMqx9xzdBYm2fxKAhz2Gfkc0gC2ZJRXu5l5Nixmh1KGkkz36LprdMwonPzFCUiKtgU47ACSq9eAefiO81RQMD/DqO/+l5chUaAH01DRpvZs8U+jpxwq/WaaxyQ6dI/hO3r7jA/ocBV1GTpgSuJWxULSmRG6KI3rXSUFQ+M7ZnUXRqk4CUrcSH1mdgGKN3FHEtYsMpo1ugGNEYG+tbrl39QUsHqpCFcBoPYexeTilZBixzufRu+a5/2/105OVlLjxqP9o6IQNC884m0jI5n1ppbzDVY2dKmB90+FO6W/VAj5nMuBavNmDFcvCupCRTXsR9HF7hLRIdt3XzbnOe9r+Xq6KyO6konL6y/n851iiV0T+cU7T3LJ5uF7fcrNEQqCmyli3Wavn2Zb8uFkDsHp0xPhmIw4K3BEvKaZaTvYN0P0XxIJgbzVXl4Rd6eLm6nUHawFj49wm13Che2bKbuY9UZxwgyPyc6f/7xLes3qPLriLf+JEyHD3pEeJt559Ym/YJQ34DXygsD8CIV1C5whwH+rBDcqd8ws6c3fzNC7jYNRcDlfK46jCEWfMjL+kXWVv6ONbsobHjjzyg2I= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bFpHbjRGZkhrUFVvc0pRWkVUcy9KUFYybW1HWGkzZTlKdVNuTERiR2twUCtN?= =?utf-8?B?M0dDL2FPU2Y5Z05KUU02QU8wZzRtRjBCcGhpTFJITHVLTFF5NUpaT04vZGE5?= =?utf-8?B?QnY3NWUyNU9WME1QZWNuTkxXTXg3bFhLQUs0OFc4VVoySUMxSXhKSmtmT29a?= =?utf-8?B?WFBlWXFQRFluemZuYlc5bC9XMHczOVdCQUZxQlVDRkVHNGVlVG5ydmN3NDRI?= =?utf-8?B?NkVrZEdKcWF0cmtuUEZFUjhuZzJIdGQ4a1RyM0JVRlJGR2cyS2JiaTR6cmI3?= =?utf-8?B?TXF4S3pLZXN2Wld6dWM5dEFLcnJkNHg4VENPTG9xQkhHdk9OaHNreUFrY2JT?= =?utf-8?B?RnV5eTB2MjdmSXhpTXV2ZXNKUmZNRjMzRU9aZFdPMWovK2pnRXlURnZMblUw?= =?utf-8?B?anZFRFgxVi9xSUxQOEQvK0Fzd1djY0g4M3NpTjFjVFNNWXpsMnc5M3dhVlM4?= =?utf-8?B?Q2FoMDI2eEh5VHoyZ3hzRW9mckJuQWRJWlBlU0k1aGQxbHB1eFB0eVU4RUR6?= =?utf-8?B?RmE1YnhVdzhkcTVnRjZoUGprRi9VT1dENlY2TzJtT2FHWlRDZFhibjVoVHFa?= =?utf-8?B?dTEzNnAxdDJQdGRDZ2ZSUk84T0NqdmxhSmZjK2JOR1JDc2czdTZydmVYUUp2?= =?utf-8?B?VHd5VTVKRGovTlE4aXBxUzF1Q0V2OVBrUnVYU2pIbTVkWURTNGZUcXBsRTBo?= =?utf-8?B?NEVWRXFUckxzZHhNenhWbTlZWmowSURLK2ovS1pFdjBkV3RuUnZ2UjJSKyti?= =?utf-8?B?M2l1cHUwYlJEQmJLZ0poZ1JVazNHQ3BXM25CNGNmWkNXRDZCVmI2QkJaN2JY?= =?utf-8?B?NTRnYW91Sy9LYU9DLzl3K1libEpnaGJKODJOV1BlUUlmdHJNVDliSk5PWlR5?= =?utf-8?B?L001QS9qakpLYVJ1ZmJDOGVZcmYzNG5HbVNwRzFCSXkyV0NDcDFCQkRVTXp6?= =?utf-8?B?SUpadG1qUFQ0a3JtU1o0Qno3TGlwOEZMV0c1Tyt3ektvMEVpVmhjMnluTE1v?= =?utf-8?B?ZUM3VXJ5VHF0Nno2S050akFGMitPSXRrZGZUVWVIWE0xMDRZVzRISWtJWlpO?= =?utf-8?B?VUlJSTBNMXJXOGYvem9qUVdIYTJLR1E3cFpYYzdLTHo0ZU1ibmNUZHlGOVpL?= =?utf-8?B?ai9xaTZ0Ni94SjhvM1NpazJYaXBJRkFwM0ROVVkwTnRIV2FBTkl2eFMwN3ZM?= =?utf-8?B?UVVJek9vZFZ2ZHNuUE5pKzc3em1NbiszRDZmZVA5aG1mUVFRNmlTb0tTWFNh?= =?utf-8?B?ZktJNFdTalloNzJTSUFIK1dlWlJicHVvWkZBd1ZWamx2alNZTXl3bzJKN0JJ?= =?utf-8?B?ZTFWTDlNSlBxMlg4WHZGM2dMOWxQN2VTZVFiOEdzMXJRTlJRbS96UzQ5SEYr?= =?utf-8?B?NU1yYVRZMG45VmRPV2NUSHA2Q2tSdzhNcnBrY0JqNVIxUlVNQ2tGT2d4b1pi?= =?utf-8?B?QThpMytpRkQwKzhEbWdjeUdJVmI5QkpTN1Q3R3RtOXlySkFNUFUwVEdtMlBT?= =?utf-8?B?TGMrZmtheEtESTBHNURBWHRuc3hKR29SL0NIRkZlck1UMVhQUS9FekRTWmhY?= =?utf-8?B?U2ZycVpJdUZwU2RualovcGtwYVRETzkrSWhLUVZveVVGL0g2bTJPeEd1U2dY?= =?utf-8?B?bnBXbGlJS1dZeHk4ODdud0x6SSs0c1JhYnFvREJ2bzJ2TFVCY3FvNndCMUI2?= =?utf-8?B?STcvb1lSeDAvTVVDZGZyVCttR2ZsbU9CNC9CSHdWeFpkdmR5Wk9pVjNaU00x?= =?utf-8?B?Q3JpSm9MUWJKSW9kaHYyYndKUGxQUlc1c0dzU2VIV0tpdDZhMXJvK1o0c3RH?= =?utf-8?B?OVlYbHR0Nld6M1BybWVRam16eEYxTWhYRGFaNjRPMThoNjlLSHpJMFpiMzly?= =?utf-8?B?L1o4YjlNU0lldUVnbnJrL3F2RmZSNy94ZGIzN0UzSmhNMHMrWmk4VlZ4REZK?= =?utf-8?B?UmkyZjBMbnJXSnUzTHFnYkF0elFBaWt4Szg4cXc3aUg5cCtyN1U5eWhBT0oz?= =?utf-8?B?cSt1cjVCTzUyQTVrWld0YTlCK3JLdmJhMGJ4akxsL25sTG1rVVh4WkNsODVm?= =?utf-8?B?bWx1OW9rZER6eStvQjlzN29qdlB6M0lDMVlzOEF1U1hEcERqWEFZY1htd0cx?= =?utf-8?B?UjNsUUVQb1VxR2JwWHkrU3lHZ1ZNd01wWUVLdkNmaFVob24ySGRGZWtXbDlM?= =?utf-8?B?OWc9PQ==?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3b42673d-a9d7-445e-ae58-08dbec1d3165 X-MS-Exchange-CrossTenant-AuthSource: PH0PR01MB7287.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2023 12:10:33.1475 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Hg88RvZMusUp3ttHEfTdosf1nIcKS8I0aVUzE3LbGJr9HnmtxkalHeQRLbI9sAyrV+nDmZrKOnM6WUOJ67t/wNOhpNLqZtD2uokBDtFIKuc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR01MB8512 Precedence: Bulk 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,nhi@os.amperecomputing.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: szx7IAikGGwGBcUSIldTAyD5x7686176AA= Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=nlFFKfKU; dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") On 11/23/2023 3:36 PM, Ard Biesheuvel wrote: > On Thu, 23 Nov 2023 at 05:49, Nhi Pham wrote= : >> >> If the SetVirtualAddressMap() is not called, mIsVirtualAddrConverted >> is FALSE and the kernel crash occurs in IsNestedFmpCapsule() when >> executing gBS->LocateProtocol () in the else case. >> >> To serve the omitted SetVirtualAddressMap() call, we could just check >> mEsrtTable presence instead of relying on mIsVirtualAddrConverted. >> >> Signed-off-by: Nhi Pham >=20 > Agreed: SetVirtualAddressMap() is optional, so whether it has been > called or not should not be used as a proxy to decide whether or not > we are still running in the boot services context. >=20 > Reviewed-by: Ard Biesheuvel Thanks Ard for quick review. I created the PR with your Rb-tag at https://github.com/tianocore/edk2/pull/5071 Regards, Nhi >=20 >=20 >> --- >> MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.c | 17 +++++++= ---------- >> MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleRuntime.c | 2 -- >> 2 files changed, 7 insertions(+), 12 deletions(-) >> >> diff --git a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.c b/Mde= ModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.c >> index 197af267aff3..2433c76a8c6f 100644 >> --- a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.c >> +++ b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.c >> @@ -41,8 +41,7 @@ >> #include >> #include >> >> -EFI_SYSTEM_RESOURCE_TABLE *mEsrtTable =3D NULL; >> -BOOLEAN mIsVirtualAddrConverted =3D FALSE; >> +EFI_SYSTEM_RESOURCE_TABLE *mEsrtTable =3D NULL; >> >> BOOLEAN mDxeCapsuleLibEndOfDxe =3D FALSE; >> EFI_EVENT mDxeCapsuleLibEndOfDxeEvent =3D NULL; >> @@ -1394,14 +1393,12 @@ IsNestedFmpCapsule ( >> EFI_SYSTEM_RESOURCE_ENTRY Entry; >> >> EsrtGuidFound =3D FALSE; >> - if (mIsVirtualAddrConverted) { >> - if (mEsrtTable !=3D NULL) { >> - EsrtEntry =3D (EFI_SYSTEM_RESOURCE_ENTRY *)(mEsrtTable + 1); >> - for (Index =3D 0; Index < mEsrtTable->FwResourceCount; Index++, E= srtEntry++) { >> - if (CompareGuid (&EsrtEntry->FwClass, &CapsuleHeader->CapsuleGu= id)) { >> - EsrtGuidFound =3D TRUE; >> - break; >> - } >> + if (mEsrtTable !=3D NULL) { >> + EsrtEntry =3D (EFI_SYSTEM_RESOURCE_ENTRY *)(mEsrtTable + 1); >> + for (Index =3D 0; Index < mEsrtTable->FwResourceCount; Index++, Esr= tEntry++) { >> + if (CompareGuid (&EsrtEntry->FwClass, &CapsuleHeader->CapsuleGuid= )) { >> + EsrtGuidFound =3D TRUE; >> + break; >> } >> } >> } else { >> diff --git a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleRuntime.c b= /MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleRuntime.c >> index 9ceb44fe4d79..44f30c16c284 100644 >> --- a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleRuntime.c >> +++ b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleRuntime.c >> @@ -21,7 +21,6 @@ >> #include >> >> extern EFI_SYSTEM_RESOURCE_TABLE *mEsrtTable; >> -extern BOOLEAN mIsVirtualAddrConverted; >> EFI_EVENT mDxeRuntimeCapsuleLibVirtualAddressC= hangeEvent =3D NULL; >> EFI_EVENT mDxeRuntimeCapsuleLibReadyToBootEven= t =3D NULL; >> >> @@ -40,7 +39,6 @@ DxeCapsuleLibVirtualAddressChangeEvent ( >> ) >> { >> gRT->ConvertPointer (EFI_OPTIONAL_PTR, (VOID **)&mEsrtTable); >> - mIsVirtualAddrConverted =3D TRUE; >> } >> >> /** >> -- >> 2.25.1 >> -=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 (#111668): https://edk2.groups.io/g/devel/message/111668 Mute This Topic: https://groups.io/mt/102762290/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-