From nobody Mon May 6 23:41:16 2024 Delivered-To: importer@patchew.org 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+97040+1787277+3901457@groups.io; helo=mail02.groups.io; 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+97040+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1670342380; cv=none; d=zohomail.com; s=zohoarc; b=n92uExvMhfV9Mx+T2HFAoqiRJx509ht9mbceNXJljKbeyNO8+i42FjaHgNDsDwicnQF5eAcVFntAGCCdlEkcgqde2GPMdtV6l5gA9ZUb1s5pPE4mQgfnhWSFKV2XWOXn9iwvnU+mJb3/RaILzU2CGP86Td+aSUNgc6yfBE1GoKE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670342380; h=Content-Type:Date:From:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=+MgjxgXVf/6RsseYzazutUW7AyT0D5pCfqHM45nP1p4=; b=Bq5sMnyNxBR7zYL11FW4xJqqyVmCDGQHu+URPwmvpKH9wD9IVNc9QA5Zxho1rotqx9GncA3kyRFBMDvz9SNsvrndRfmJ2cIVpsP7yaS3iq1NWnMJnikOU/7vDgWWz3Lxk/j4/+qFT4aWHPY9lCFgkDyCwqcfW5Iw6/f+gyMWLTg= ARC-Authentication-Results: i=1; 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+97040+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1670342380569742.5985639471141; Tue, 6 Dec 2022 07:59:40 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id c2jJYY1788612xWyGLsxZoYo; Tue, 06 Dec 2022 07:59:39 -0800 X-Received: from us-smtp-delivery-162.mimecast.com (us-smtp-delivery-162.mimecast.com [170.10.133.162]) by mx.groups.io with SMTP id smtpd.web10.51672.1670342378530437821 for ; Tue, 06 Dec 2022 07:59:39 -0800 X-Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2049.outbound.protection.outlook.com [104.47.51.49]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-50-C8Z7VO7nOJSq9DNkazmEuw-1; Tue, 06 Dec 2022 10:59:36 -0500 X-MC-Unique: C8Z7VO7nOJSq9DNkazmEuw-1 X-Received: from DM4PR84MB1520.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:8:4b::12) by SJ0PR84MB1699.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:a03:432::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.14; Tue, 6 Dec 2022 15:59:34 +0000 X-Received: from DM4PR84MB1520.NAMPRD84.PROD.OUTLOOK.COM ([fe80::cad6:ea31:ec1c:4dc4]) by DM4PR84MB1520.NAMPRD84.PROD.OUTLOOK.COM ([fe80::cad6:ea31:ec1c:4dc4%6]) with mapi id 15.20.5880.014; Tue, 6 Dec 2022 15:59:34 +0000 From: "Anbazhagan, Baraneedharan via groups.io" To: "devel@edk2.groups.io" Subject: [edk2-devel] MdeModulePkg/UefiBootManagerLib: Use hob size to process MemoryTypeInfo Thread-Topic: MdeModulePkg/UefiBootManagerLib: Use hob size to process MemoryTypeInfo Thread-Index: AdkJiDLC60b6SCUjQnGsXXAqGD6PgQ== Date: Tue, 6 Dec 2022 15:59:34 +0000 Message-ID: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR84MB1520:EE_|SJ0PR84MB1699:EE_ x-ms-office365-filtering-correlation-id: c0342001-1390-4446-1cda-08dad7a2dec1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: FISuBqKA0yaF+sXxI8IrkmY7oQJBEMbAoa0SxXRpJr84Wlu78/+0i5pQmcvRKmTArqboC/xEqs40uYM/Ja3H0CciMLSBZkcs5yetVTnj+AJVjAeQ12ktcNbxRaisIksrlsANTPv1fFYau5459B7JN/dQaOnlaXq7LOF5aM0DB5DqmZkAtSPeW4oIwb/M05KFs8WMMlxOfuUxtRzKJzPTe0/WYF0OLQpPE3Bsinys3I5b2evjGHWNbBFjmT3k9M1Wr8lVhKG5STH/xPZYXxUXKqfB6NJcnIw+ZLAz6l1q3XQ3ST/TNnwt5/7U1/2tnRMGLc6l5ZoPq00+G9GLjyigexY04vKoCyMrEgpxbW2CwRS9cXoNGW3mpsSg3wVHqbyTGmdRlgKxjLiKV+OjTEZMaNqn1FfAX/1JbVv078Usl1AoFuJb9qG1qlgbQ5qHpa728ZOZi29QDh08b9PmO30WtfeExBSJfOmLViIngT+l/76qIV2CqfhbDY+rt3MXtyu8EARPfExQM5c218wJrbe8uOz10o9loUldB3ppYEEo9mbM/mnl8gjyl4S6FFxdDgau56a1sFk8QZiNgak+lJgrubE0vPHwJRSOWlCAgFF5rFqPOJHqigLwhHiXq9I2ByN52wl7fd825wpG/UC6+wObH4ricFcDGH/YQDrrov9mcdVRmFfxvAR90FK0oAKTSLcywtj9G7lwVHkLTLZtzJFaUA== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?B/1KIl2m1ylK1kI0d7fZy5kEnzhAMZieOxAVY6Kv42cpOyVfyQinql1RsuD+?= =?us-ascii?Q?mshstn8SEVjjxSNMUkDfQoznY/C0BTc2FBXCF56OgMIt8de+lLSiui+c/l9q?= =?us-ascii?Q?QC+HpcOhQM0SjE9rbHqY4M0cbr0PcP9KNeOioo4icBqw0hc35g+b8ABqka1I?= =?us-ascii?Q?jl11LFS2UDxPnBz9PcbTSMYHHYawvfUZh5LlPRXiT5MhKGDTxENvCuDwCUFA?= =?us-ascii?Q?9usbKS6vKr32HRPlink8hewjj1RQEYXPAbvbWWb0+MRpFDXKcKWshD9pTz7v?= =?us-ascii?Q?VYK++yX+XKBgWmaEptFK3f8YU8vG6G4GqeoEY3nFhdvYRxt/6lrQ+LuywG0C?= =?us-ascii?Q?p2FV0O/ItKn/JCaql34cQpJ50csQt/C0Imw79RcxxyyX3KUr29b+xthslxW9?= =?us-ascii?Q?RTS7oE0IQ+CTi9W2hSyyFZDv7Auaj7wyvtC8XEmRlo1TOY563jcZZwCCT7Ip?= =?us-ascii?Q?hEXkeIs5oygwrWvtO3nrEc3CB6HPWCsNHUtpaqI+dHMyVGytsLNl12J846IY?= =?us-ascii?Q?u7aLlreV01aBA+SvHb+heVO/sRvrWXC5bMwLjAddIEF8+4SCESjreEbxi5g5?= =?us-ascii?Q?qwzEthPxH/P+zaNbwx0pQKmVdbeb4E5CpaXvGIdMEP0l+oxrhyi+ky+NjlW3?= =?us-ascii?Q?o1NZEmLvGKSi62f5vM/XvFhltUVq4Ws2zUeMszGxNbej031dip7lNdyvpkxZ?= =?us-ascii?Q?hPugVYLCTSPRQzKdUUnFJZl02bBmEpgRY2QgMsgXMeebjTlC/QWJK+VDFDoh?= =?us-ascii?Q?TNNOy/sioxVC6IL5em5yyRQqVUZ5uAzuYZ6pmfzTYBl82qeUwv6qf3ommeht?= =?us-ascii?Q?F16WcqoZbD0P3086X5fGlQRyEmN90bS7iccnQFEMVNBP1VLl6AmGN74pbBBy?= =?us-ascii?Q?nAlU3/N08EAy4f4jkUcWhcHO1hLSqA0zYPrkDR+dTiWAyU4yRrHFf0ORwHIv?= =?us-ascii?Q?Koa1Fzp1br+m9kiJhvGbHY4KioCNz60lchfqO7qcspwltYa7QGaae8ITsq5W?= =?us-ascii?Q?uRgagUgOwgHQ0+d682t3ehzlvfK7DiV5mUkV64G/e99O3EFKwPyi+H9WWmkp?= =?us-ascii?Q?GuWWVqpjBxBMkWsMnE/qUC556Od8D6NBVr4v0ngA7e58priTE9kqDwcNeDkS?= =?us-ascii?Q?3bPJJerudS1cW4EIplenELBH9WggPaieCezb7hL0K0FaiENYzRRTQkTVBC2n?= =?us-ascii?Q?jYZTsfe2EzBGDHuaKoQWcwOebz1yBp9KYbgZ74BH2PV3CJqxy3KsBK/Yh8VI?= =?us-ascii?Q?sQv5/6/R/58TUqCu+5823c0cpMUdSOlsPn0/L2+Ph75mcr4fxIZnVUCX1VBo?= =?us-ascii?Q?OUOJJRYXL6gMlUPwJfaGIj60qr0Cc51J/Bpgaf1MjR8Cv8JlLo2P6qT3eSi+?= =?us-ascii?Q?r/ev5Skhy575ucH0k9pB//Aq4cxTJ6FVwcm/4PfYo3I5VjM3FZYTj6/sUjZU?= =?us-ascii?Q?3NiNlrWhuc1FD1NaQpc15CTupTfFHoXcxclofRglhh+5agAVWeUnph+Q1bgB?= =?us-ascii?Q?lzfaJE+G5uHEroEyKYF2BHwySJ2gJhJ6Z1Quu7XYzkkzL9YH7pgbdsSysZam?= =?us-ascii?Q?tqvPzO1wTCaOgENEMhA=3D?= MIME-Version: 1.0 X-OriginatorOrg: hp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR84MB1520.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: c0342001-1390-4446-1cda-08dad7a2dec1 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Dec 2022 15:59:34.7593 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: ca7981a2-785a-463d-b82a-3db87dfc3ce6 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: khC9JBGMxI8qE3JlB2LIWizD+OjMYfwyCS+UQHm6Gf+HFUnAWKTlDTnI9jg/8vV0Jn/kRL/oU+03IbaEFb5v+w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR84MB1699 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: hp.com 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,anbazhagan@hp.com X-Gm-Message-State: 2FhNvsBzmpcLyVC5XrBQuz1hx1787277AA= Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_DM4PR84MB15201D84190FA82987C84DE2BA1B9DM4PR84MB1520NAMP_" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1670342379; bh=tm2azArIFCKkW4xHvEE74uocSeVUd8CfCL4I+bGOEmw=; h=Content-Type:Date:From:Reply-To:Subject:To; b=Git1PNTKBYRQWePX98lFAY+vJ04tBh2bJGf/ZRid5hVQm86iDRCaZUp80X7xxUsp/I+ wsRRDSqsRmw2obiuBHh8bm/uOq+IULkMYHywsEQLiIr9tbrIH2HEPOunGumthQmAdyugv bM3jMBmKme3285lODrBJONpabAnt0VEOF4Q= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1670342382536100001 --_000_DM4PR84MB15201D84190FA82987C84DE2BA1B9DM4PR84MB1520NAMP_ Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Current code relies on last entry in hob to be MaxMemoryType enum value which keeps changing on new memory type definition. If the HOB is created by binaries built with older Edk2, current code leads to hang which could be avoided by using hob size. Signed-off-by: Baraneedharan Anbazhagan anbazhagan@hp.com --- MdeModulePkg/Library/UefiBootManagerLib/BmMisc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmMisc.c b/MdeModulePk= g/Library/UefiBootManagerLib/BmMisc.c index a5e32ebdba..014e4557bf 100644 --- a/MdeModulePkg/Library/UefiBootManagerLib/BmMisc.c +++ b/MdeModulePkg/Library/UefiBootManagerLib/BmMisc.c @@ -140,6 +140,7 @@ BmSetMemoryTypeInformationVariable ( UINT32 Current; UINT32 Next; EFI_HOB_GUID_TYPE *GuidHob; + UINTN NoOfEntries; BOOLEAN MemoryTypeInformationModified; BOOLEAN MemoryTypeInformationVariableExists; EFI_BOOT_MODE BootMode; @@ -200,6 +201,7 @@ BmSetMemoryTypeInformationVariable ( } VariableSize =3D GET_GUID_HOB_DATA_SIZE (GuidHob); + NoOfEntries =3D VariableSize / sizeof(EFI_MEMORY_TYPE_= INFORMATION); PreviousMemoryTypeInformation =3D AllocateCopyPool (VariableSize, GET_GU= ID_HOB_DATA (GuidHob)); if (PreviousMemoryTypeInformation =3D=3D NULL) { return; @@ -212,8 +214,8 @@ BmSetMemoryTypeInformationVariable ( DEBUG ((DEBUG_INFO, " Type Pages Pages Pages \n")); DEBUG ((DEBUG_INFO, "=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D =3D= =3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D\n")); - for (Index =3D 0; PreviousMemoryTypeInformation[Index].Type !=3D EfiMaxM= emoryType; Index++) { - for (Index1 =3D 0; CurrentMemoryTypeInformation[Index1].Type !=3D EfiM= axMemoryType; Index1++) { + for (Index =3D 0; Index < NoOfEntries; Index++) { + for (Index1 =3D 0; Index1 < NoOfEntries; Index1++) { if (PreviousMemoryTypeInformation[Index].Type =3D=3D CurrentMemoryTy= peInformation[Index1].Type) { break; } -- 2.38.1.windows.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 (#97040): https://edk2.groups.io/g/devel/message/97040 Mute This Topic: https://groups.io/mt/95495909/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- --_000_DM4PR84MB15201D84190FA82987C84DE2BA1B9DM4PR84MB1520NAMP_ Content-Type: text/html; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable

Current code relies on last entry in hob to be MaxMe= moryType enum value

which keeps changing on new memory type definition. = If the HOB is

created by binaries built with older Edk2, current c= ode leads to hang

which could be avoided by using hob size.=

 

Signed-off-by: Baraneedharan Anbazhagan anbazhagan@hp.com

---

MdeModulePkg/Library/UefiBootManagerLib/BmMisc.c | 6= ++++--

1 file changed, 4 insertions(+), 2 deletions(-)=

 

diff --git a/MdeModulePkg/Library/UefiBootManagerLib= /BmMisc.c b/MdeModulePkg/Library/UefiBootManagerLib/BmMisc.c

index a5e32ebdba..014e4557bf 100644

--- a/MdeModulePkg/Library/UefiBootManagerLib/BmMisc= .c

+++ b/MdeModulePkg/Library/UefiBootManagerLib/BmMisc= .c

@@ -140,6 +140,7 @@ BmSetMemoryTypeInformationVariab= le (

   UINT32     &nb= sp;            =      Current;

   UINT32     &nb= sp;            =      Next;

   EFI_HOB_GUID_TYPE   &nbs= p;        *GuidHob;

+  UINTN      &nb= sp;            =      NoOfEntries;

   BOOLEAN     &n= bsp;            = ;    MemoryTypeInformationModified;

   BOOLEAN     &n= bsp;            = ;    MemoryTypeInformationVariableExists;

   EFI_BOOT_MODE    &n= bsp;           BootMode;<= o:p>

@@ -200,6 +201,7 @@ BmSetMemoryTypeInformationVariab= le (

   }

   VariableSize    &nb= sp;            =  =3D GET_GUID_HOB_DATA_SIZE (GuidHob);

+  NoOfEntries     &nb= sp;            = =3D VariableSize / sizeof(EFI_MEMORY_TYPE_INFORMATION);

   PreviousMemoryTypeInformation =3D Alloc= ateCopyPool (VariableSize, GET_GUID_HOB_DATA (GuidHob));

   if (PreviousMemoryTypeInformation =3D= =3D NULL) {

     return;

@@ -212,8 +214,8 @@ BmSetMemoryTypeInformationVariab= le (

   DEBUG ((DEBUG_INFO, " Type &n= bsp;  Pages     Pages     Page= s  \n"));

   DEBUG ((DEBUG_INFO, "=3D=3D=3D=3D= =3D=3D  =3D=3D=3D=3D=3D=3D=3D=3D  =3D=3D=3D=3D=3D=3D=3D=3D  = =3D=3D=3D=3D=3D=3D=3D=3D\n"));

-  for (Index =3D 0; PreviousMemoryTypeInformat= ion[Index].Type !=3D EfiMaxMemoryType; Index++) {

-    for (Index1 =3D 0; CurrentMemory= TypeInformation[Index1].Type !=3D EfiMaxMemoryType; Index1++) {<= /p>

+  for (Index =3D 0; Index < NoOfEntries; In= dex++) {

+    for (Index1 =3D 0; Index1 < N= oOfEntries; Index1++) {

       if (PreviousMem= oryTypeInformation[Index].Type =3D=3D CurrentMemoryTypeInformation[Index1].= Type) {

         bre= ak;

       }

--

2.38.1.windows.1

 

_._,_._,_

G= roups.io Links:

You receive all messages sent to this group.

Vi= ew/Reply Online (#97040) | | Mute This Topic | New Topic
Your Subscription | Contact Group Owner | Unsubscribe [importer@patchew.org]
_._,_._,_=20 --_000_DM4PR84MB15201D84190FA82987C84DE2BA1B9DM4PR84MB1520NAMP_--