From nobody Sat May 4 23:17:26 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+94237+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 1663948595316292.4039203453549; Fri, 23 Sep 2022 08:56:35 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id gr0XYY1788612xSLUqTeT8vD; Fri, 23 Sep 2022 08:56:34 -0700 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.48]) by mx.groups.io with SMTP id smtpd.web10.9180.1663948592870674082 for ; Fri, 23 Sep 2022 08:56:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mNcwNk0Z9T6s/aSLX7+Ewich1vKNDMS3Pjh/L/kssZ+d87cgXetp1Bq6bAwbi4qaP4TSc4o1E777pVxr2OjfcHjrzM7zD1a/fnGlOHDkf1JoMUs8JvL+inXwUSoeJdqdWUEzRJai7F/bmCUt/Yy4MLPtItHGgvIpqI2dMGAM7IzklqfuRr6rsQ5Ks+oG3ddDlUtemDy+Ruj09Npvaq7oeBXLgSL++hUmvDh72w33e39rwuLkvWwKp861x7Ndz5S6LxVWE4T9LtnZAe+uniHUiUnP8Sn2C5zoMNNe23XXeSgzHgACzwsuAclW3IgR1lNYjRldgvtmIOL0N3YqWwx6Yw== 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=MJhsd4gOqNykbcmsempNPDJHqUWrQambx//VcKV/3no=; b=C9a/Hu9eRPSiucPWnLfjGxEPvGyfYpcv9EwJ3TVZ7qiITjs954Ld6BCwzzydQQNah6Q0Bo74zraK/orHU5tyvihCEAKpGZxisPpdv19UqCQWJDLrGS7PXrfH3TWiiwe4P1wexRAP0ac64tKByD/v1m0xURghmPnybPndsq+sbKUOLvV9XtexNaz1sR5K8KGEZ7dyddcgxsQ0SK9OW1R4y1eDA+qegCB2dZ2Dw5FJFNwFdZ43GfnjMA16kd0co3GoysTtvGyuqPWkKYPKuFbF99wn0779baqmrPxNTCdFMybpnXX01MnkYCE6m7Kazw2UNKAjHtL+zRVFl2TnLSC+KQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=edk2.groups.io 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 DM6PR18CA0005.namprd18.prod.outlook.com (2603:10b6:5:15b::18) by BL1PR12MB5993.namprd12.prod.outlook.com (2603:10b6:208:399::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.16; Fri, 23 Sep 2022 15:56:31 +0000 X-Received: from DM6NAM11FT070.eop-nam11.prod.protection.outlook.com (2603:10b6:5:15b:cafe::98) by DM6PR18CA0005.outlook.office365.com (2603:10b6:5:15b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.20 via Frontend Transport; Fri, 23 Sep 2022 15:56:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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+94237+1787277+3901457@groups.io; helo=mail02.groups.io; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C X-Received: from mail.nvidia.com (216.228.117.161) by DM6NAM11FT070.mail.protection.outlook.com (10.13.173.51) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.14 via Frontend Transport; Fri, 23 Sep 2022 15:56:30 +0000 X-Received: from rnnvmail204.nvidia.com (10.129.68.6) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.26; Fri, 23 Sep 2022 08:56:18 -0700 X-Received: from rnnvmail202.nvidia.com (10.129.68.7) by rnnvmail204.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.29; Fri, 23 Sep 2022 08:56:17 -0700 X-Received: from f153882e4be8.nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.986.29 via Frontend Transport; Fri, 23 Sep 2022 08:56:17 -0700 From: "Jeff Brasen via groups.io" To: CC: , , , , Jeff Brasen Subject: [edk2-devel] [PATCH v3] EmbeddedPkg/PrePiMemoryAllocationLib: Add check for space on offset allocation Date: Fri, 23 Sep 2022 09:56:16 -0600 Message-ID: <38bfcc0559d4b02b629c07fbdc434e5f1971e0ff.1663948563.git.jbrasen@nvidia.com> MIME-Version: 1.0 X-NVConfidentiality: public X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT070:EE_|BL1PR12MB5993:EE_ X-MS-Office365-Filtering-Correlation-Id: a2d74364-d2cf-43d9-0b50-08da9d7c2e98 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: 532DAl+VMDmoqhOUzI8bxZoTo0vd3Xs4z+iHdPj3RzDikCeHXQQ2gKUnb0bhGzLuvOGPYKhi/PGj33Fy2nnuLrRW1YGKVxXiQHjNsrVQ7/hgsS1Jsvy2H5c6vlGbD/D/rD1JHq7B9ONJkHlA9nu9i4ImDAG6p1gNm06n/JBVO6REBCHuXG/RLtmDOhMP/Fc+zOPvcNesCCy6vrUsK41huAyAaUg98V0GI6dPN7RLVAH8gge0JC2uZ8/AZkfdfrzAw1uDBUO2U7KP6fcT6VwKZVvkwuKBm4aZZ8Q4F6uoTu7HwhHTStvYoad+mwG/mtayTUZ15JYKK+x8Q9VGn3LsZONxB5zUmt9cmH9ubSLNlPc/Tn+bYhCXHbs7tYtKoCttprkCuSP0NFTj1lD/yTCP6oKoYVjL+mb6TUkmLMMcgYTEg4NFVYUCD+XyXgEEGVaUI3rGe65xpwtiX4tOgiPCCSEIZIFGuMgR6mIzTSimlb3Awe3RKkAUwB99Ke9ULsqDLHuRINWnl9x+bzbDk0x0RKj4EKTxNQO0hkkIlng7nbrBGrat42Z33m+VefQTURZgBDUSNMLQSxNvVMDu0eNd7MzNiT6lirOoMlk6WfPPl2houxPmZs1SsecF3nHfdIt8COS0FBQhk1WaquMYXyBcpd6vICguGXw/FCnixveJSRbBZdODUvjp1RLkCfk0b+Yia3NI8/r/SNpd6cDE8ZuFQ2j74W9UM7vWYPj5zz+9dXqDd5BygwQ2rjc1T9HreYOTzQNu7j2YpcgFq9H/cRJ7ow== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2022 15:56:30.8005 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a2d74364-d2cf-43d9-0b50-08da9d7c2e98 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT070.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5993 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: M47CAUx6DQX5QlASXORmOLkyx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1663948594; bh=61pV2g0EzstUtsMLSef/ot0CEL2zd+7M/J2pDy1OXjQ=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=s1JenlEbButxEYyCVyWsoI2R1XN5MERvw0sBNe30g5xIJQBcYZi2+k6QPEyxmkCuTMh o38RJuhrg5u4kPDVDHK+ULcMgf83jT9Dqv05zjH6a/yixjHW/qxZD16Y9UauyELp9Heft wF3E6+6w+/ZVKQKTjLn2nVIi65cC4QtUJJI= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1663948597313100001 Content-Type: text/plain; charset="utf-8" Update check for enough space to occur prior to alignment offset. This prevents cases where EfiFreeMemoryTop < EfiFreeMemoryBottom. Signed-off-by: Jeff Brasen --- .../MemoryAllocationLib.c | 48 ++++++++----------- 1 file changed, 21 insertions(+), 27 deletions(-) diff --git a/EmbeddedPkg/Library/PrePiMemoryAllocationLib/MemoryAllocationL= ib.c b/EmbeddedPkg/Library/PrePiMemoryAllocationLib/MemoryAllocationLib.c index 2cc2a71121..08a0add340 100644 --- a/EmbeddedPkg/Library/PrePiMemoryAllocationLib/MemoryAllocationLib.c +++ b/EmbeddedPkg/Library/PrePiMemoryAllocationLib/MemoryAllocationLib.c @@ -23,41 +23,35 @@ InternalAllocatePages ( ) { EFI_PEI_HOB_POINTERS Hob; - EFI_PHYSICAL_ADDRESS Offset; + EFI_PHYSICAL_ADDRESS NewTop; =20 Hob.Raw =3D GetHobList (); =20 - // Check to see if on 4k boundary - Offset =3D Hob.HandoffInformationTable->EfiFreeMemoryTop & 0xFFF; - if (Offset !=3D 0) { - // If not aligned, make the allocation aligned. - Hob.HandoffInformationTable->EfiFreeMemoryTop -=3D Offset; - } + NewTop =3D Hob.HandoffInformationTable->EfiFreeMemoryTop & ~(EFI_PHYSIC= AL_ADDRESS)EFI_PAGE_MASK; + NewTop -=3D Pages * EFI_PAGE_SIZE; =20 // // Verify that there is sufficient memory to satisfy the allocation // - 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; + if (NewTop < (Hob.HandoffInformationTable->EfiFreeMemoryBottom + sizeof = (EFI_HOB_MEMORY_ALLOCATION))) { + return NULL; } + + // + // Update the PHIT to reflect the memory usage + // + Hob.HandoffInformationTable->EfiFreeMemoryTop =3D NewTop; + + // + // 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 (#94237): https://edk2.groups.io/g/devel/message/94237 Mute This Topic: https://groups.io/mt/93857452/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-