From nobody Fri May 10 18:58:01 2024 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+93448+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1662565567892493.29325021274144; Wed, 7 Sep 2022 08:46:07 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 6mgjYY1788612x3IgZgHCP6o; Wed, 07 Sep 2022 08:46:07 -0700 X-Received: from NAM12-DM6-obe.outbound.protection.outlook.com (NAM12-DM6-obe.outbound.protection.outlook.com [40.107.243.83]) by mx.groups.io with SMTP id smtpd.web12.272.1662565565676368669 for ; Wed, 07 Sep 2022 08:46:06 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KnL9ac1NmVMxqQuaAEKb5Ik9UkhWlX6aF175zRnEDBaq8r7v5BxSrH+pMl9gGszN9vGqER5pmSNPCjm1pRarmbqcAVPWQIZRDZpspTD3Oxkmqed1sMmMsGEsrH0EChoNzio8JUpz7L2au0lRSln3hPo92dbd75gaEAt2UCEg0ZTIsfdug/iVAA03gzf1Pb5Z5qPC1gmfDYeNQLWtXgjnRAMxtNm4zffuFrXmhlyLcDzxcoiXZuWdVzprCUrF4o0FUOt8vJ0UE3pbZ4QVKmBAWGPVkZ5zKbXkYw1mFCNCgcTC41QpmvT71vjG+d79zepcQVMXCk0nPKtcSD48RNq3MA== 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=JLUZ7+DxXBXsaf7SutNl8n7LYhwpgFcuuRz/ikIFJw4=; b=NYR9qYshG47cQXc/ErvcNs3aEi9V0/ld3C8LH70cQg/9bz1YlvW6fOI/9Z7EtLGhAh4Gv/Xe7GNa86IedvC4EcZsbQLQuKFqMkvRPXWJEne+JNU2/2SwQIE4gDMOWa3546Q+w9xxnN6aNlpP3Uz+cRALC2xd2OWNyD2Z1n6MaqZ3JtZ+X+qNvjyaNKeZftDvE2Sv8SRp4V3JtlyjCV0fbSzmNn835OEG7rzAx7f8f7b23KVUotn5Bro5+zIFa/4tfVOi78RvjpwyIz4jZd5kLDZB2RTAAk4RQgXyiFZDYHAZUYjO98F02EjntJDJYLkBYKefsa3eWzMK+egOnpoxqA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 12.22.5.234) smtp.rcpttodomain=danielschaefer.me smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none X-Received: from DM5PR07CA0114.namprd07.prod.outlook.com (2603:10b6:4:ae::43) by PH8PR12MB7375.namprd12.prod.outlook.com (2603:10b6:510:215::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.15; Wed, 7 Sep 2022 15:46:03 +0000 X-Received: from DM6NAM11FT058.eop-nam11.prod.protection.outlook.com (2603:10b6:4:ae:cafe::c) by DM5PR07CA0114.outlook.office365.com (2603:10b6:4:ae::43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.14 via Frontend Transport; Wed, 7 Sep 2022 15:46:03 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 12.22.5.234) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.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+93448+1787277+3901457@groups.io; helo=mail02.groups.io; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 12.22.5.234 as permitted sender) receiver=protection.outlook.com; client-ip=12.22.5.234; helo=mail.nvidia.com; pr=C X-Received: from mail.nvidia.com (12.22.5.234) by DM6NAM11FT058.mail.protection.outlook.com (10.13.172.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.5612.13 via Frontend Transport; Wed, 7 Sep 2022 15:46:02 +0000 X-Received: from rnnvmail202.nvidia.com (10.129.68.7) by DRHQMAIL101.nvidia.com (10.27.9.10) with Microsoft SMTP Server (TLS) id 15.0.1497.38; Wed, 7 Sep 2022 15:46:02 +0000 X-Received: from rnnvmail202.nvidia.com (10.129.68.7) by rnnvmail202.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.29; Wed, 7 Sep 2022 08:46:01 -0700 X-Received: from localhost.localdomain (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.986.29 via Frontend Transport; Wed, 7 Sep 2022 08:46:01 -0700 From: "Jeff Brasen via groups.io" To: CC: , , , , Jeff Brasen Subject: [edk2-devel] [PATCH v2] EmbeddedPkg/PrePiMemoryAllocationLib: Check for space on offset allocation Date: Wed, 7 Sep 2022 09:45:58 -0600 Message-ID: <3bbe3600b3c7012614a09aedb3543821b33f28c0.1662565486.git.jbrasen@nvidia.com> MIME-Version: 1.0 X-NVConfidentiality: public X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT058:EE_|PH8PR12MB7375:EE_ X-MS-Office365-Filtering-Correlation-Id: 42f30828-9b96-4cb4-0da9-08da90e811c1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: Jd+R6x9jMY+sLUh6fDpOcNFgdbuA8HruipYojhjSfRGxiuGKzObiGg70KIIiTbt36qXYc/xkviSMgzGqVzDo8OFziwDMms0vNADWK2HO2B8o9iMJnVO664IHmx8qWH9wb8+uPfP5gBS+k9ETY5oucE/0FzYdsc0DUxfiwGV5+R9gOkdbwnPmHGApM0la0URfMR3Th0TWcHzESPNav/lNpyyM/D+wgBLETnBuyMvlnK5OZUOfNs33Px/7pg+akO1Sir918p5DdkzmqCg6M0yuMFZlIE5S7JFYvh/SF1wMudxQfO9BWqBfZn7Sl0VBkTCYAig7HDZVJJRixDH0E7RonOZCTIc8V9oa7Ee1ngjCMw2BHYorHYQ7jmj76ywhd1m0C7S1e86mCCbmANex37eQReb8hMINySz+/g8+SC+xxmhFNSSyzjGPnJcIGzJRVL/yebqzfaenAiPRiJLSbV5n7+NUPe12NxO6sIKRCk6O+qFtE1414tx5XB+0WWMfqpaaSOASCYiUa9PWeak9axhyEnOmTwAUIRBvR1zALOkf4bHupqzLkmdW0K9uH/4nXwnYHgKgIh2aSmaDFfzhyolVAoQpGv9YTdFBRvkMNwUIKpd3u9ia4OPA1andpiYMLhrp2G27PHPalTldPZcoYDa98NYKh1UOBtqzryQUNR4ysh8n0ch5Asd+orAXHwSO+JNjBQ/PXW+f4c7tey4PoJZh2EkQ9Q1v2m6XtwVfbGwHXucP8so944QYgpJnt+Odrnr4+ZGXqXNujQlCNUkpr6rh+f+N6MGZbYutAkBou1QKmpdglif12IJzCOVc2EeGUulC X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2022 15:46:02.9773 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 42f30828-9b96-4cb4-0da9-08da90e811c1 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[12.22.5.234];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT058.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7375 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,jbrasen@nvidia.com X-Gm-Message-State: SPV15TCjoAsql0lwlDvVRypKx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1662565567; bh=NJCWdB5kl8/o/J+3CTHLNLSfm9hjOGMaUhpQYmb2KLU=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=CrpUplBd0n76jSGl85H0CxIiMMpBLICRiIPFF/RbbFjEvHlbPUeVIRsVxy7wvNzvdOA FINNuZVvEiVagL4LPnU0GOCUpMEtgqTyptsk/dSib1XnS3IHxrD33woEcvM8f8iftL3da +RsuHhU5Gyj9HSrllIzRyvlKYetDwJtITK8= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1662565569013100003 Content-Type: text/plain; charset="utf-8" Update check for enough space to occur prior to alignment offset modification. This prevents a case where EfiFreeMemoryTop could be less than EfiFreeMemoryBottom Signed-off-by: Jeff Brasen --- .../MemoryAllocationLib.c | 53 +++++++++++-------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/EmbeddedPkg/Library/PrePiMemoryAllocationLib/MemoryAllocationL= ib.c b/EmbeddedPkg/Library/PrePiMemoryAllocationLib/MemoryAllocationLib.c index 2cc2a71121..9208826565 100644 --- a/EmbeddedPkg/Library/PrePiMemoryAllocationLib/MemoryAllocationLib.c +++ b/EmbeddedPkg/Library/PrePiMemoryAllocationLib/MemoryAllocationLib.c @@ -27,37 +27,44 @@ InternalAllocatePages ( =20 Hob.Raw =3D GetHobList (); =20 - // Check to see if on 4k boundary Offset =3D Hob.HandoffInformationTable->EfiFreeMemoryTop & 0xFFF; + // + // Verify that there is sufficient memory to satisfy the allocation and = padding prior to updating anything + // + if ((Hob.HandoffInformationTable->EfiFreeMemoryTop - ((Pages * EFI_PAGE_= SIZE) + sizeof (EFI_HOB_MEMORY_ALLOCATION)) - Offset) < Hob.HandoffInformat= ionTable->EfiFreeMemoryBottom) { + if (Offset !=3D 0) { + DEBUG ((DEBUG_ERROR, "Offset applied without enough space\r\n")); + } else { + DEBUG ((DEBUG_ERROR, "Out of memory\r\n")); + } + + ASSERT (FALSE); + return 0; + } + + // Check to see if on 4k boundary if (Offset !=3D 0) { // If not aligned, make the allocation aligned. Hob.HandoffInformationTable->EfiFreeMemoryTop -=3D Offset; } =20 // - // Verify that there is sufficient memory to satisfy the allocation + // Update the PHIT to reflect the memory usage // - if (Hob.HandoffInformationTable->EfiFreeMemoryTop - ((Pages * EFI_PAGE_S= IZE) + sizeof (EFI_HOB_MEMORY_ALLOCATION)) < Hob.HandoffInformationTable->E= fiFreeMemoryBottom) { - return 0; - } else { - // - // Update the PHIT to reflect the memory usage - // - Hob.HandoffInformationTable->EfiFreeMemoryTop -=3D Pages * EFI_PAGE_SI= ZE; - - // This routine used to create a memory allocation HOB a la PEI, but t= hat's not - // necessary for us. - - // - // Create a memory allocation HOB. - // - BuildMemoryAllocationHob ( - Hob.HandoffInformationTable->EfiFreeMemoryTop, - Pages * EFI_PAGE_SIZE, - MemoryType - ); - return (VOID *)(UINTN)Hob.HandoffInformationTable->EfiFreeMemoryTop; - } + Hob.HandoffInformationTable->EfiFreeMemoryTop -=3D Pages * EFI_PAGE_SIZE; + + // This routine used to create a memory allocation HOB a la PEI, but tha= t's not + // necessary for us. + + // + // Create a memory allocation HOB. + // + BuildMemoryAllocationHob ( + Hob.HandoffInformationTable->EfiFreeMemoryTop, + Pages * EFI_PAGE_SIZE, + MemoryType + ); + return (VOID *)(UINTN)Hob.HandoffInformationTable->EfiFreeMemoryTop; } =20 /** --=20 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 (#93448): https://edk2.groups.io/g/devel/message/93448 Mute This Topic: https://groups.io/mt/93527827/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-