From nobody Fri May 17 01:44:09 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+86525+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+86525+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=linux.alibaba.com ARC-Seal: i=1; a=rsa-sha256; t=1644409594; cv=none; d=zohomail.com; s=zohoarc; b=k1XY9M+fIkJb6h9GyIbg63/nOhS2V9tPYzzo85p2FnZX03w70xelKUtuj9H+A1dDLbCkfZYIJgoeETT4L4efifq+mySiuFOD4he7vDB673wMSPXvKZr/AcuTIN+VE0tm6FIFT0K3/BvTGAx7kcHVzFLSj+c0KB6JZJ+bEPT0FKI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644409594; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=YU0UJ/JaOKKZGseuH8sbdmolXRp/ToLGTmOsxeFcUNQ=; b=Nvddi1SgKqA+hhBDOX9uBYU4CFXv+dHl0pX4sH6/kUz9FoKsEn4RmrMN/JwxB5BwzGSLcIc39uGL96kVqeitOxOvNk8T///LwNiDE6h+sU1Xgv90oHzvTvj7e3VMHTEIttMSdTNW5gJOclTmwxYrgzvRb/l0jgymDGVQFj7ab8I= 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+86525+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1644409594906531.6481998235703; Wed, 9 Feb 2022 04:26:34 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id JRXQYY1788612xPPo0qDaCJ6; Wed, 09 Feb 2022 04:26:34 -0800 X-Received: from out30-132.freemail.mail.aliyun.com (out30-132.freemail.mail.aliyun.com [115.124.30.132]) by mx.groups.io with SMTP id smtpd.web11.25674.1644409592556451679 for ; Wed, 09 Feb 2022 04:26:32 -0800 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R581e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04400;MF=huangming@linux.alibaba.com;NM=1;PH=DS;RN=7;SR=0;TI=SMTPD_---0V4.E3mU_1644409588; X-Received: from 842effaa37a8.tbsite.net(mailfrom:huangming@linux.alibaba.com fp:SMTPD_---0V4.E3mU_1644409588) by smtp.aliyun-inc.com(127.0.0.1); Wed, 09 Feb 2022 20:26:29 +0800 From: "Ming Huang" To: devel@edk2.groups.io, sami.mujawar@arm.com, ardb+tianocore@kernel.org, jiewen.yao@intel.com, supreeth.venkatesh@arm.com Cc: ming.huang-@outlook.com, Ming Huang Subject: [edk2-devel] [PATCH v1 1/2] StandaloneMmPkg/Hob: Assert or return NULL for create hob failed Date: Wed, 9 Feb 2022 20:25:57 +0800 Message-Id: <20220209122558.60329-2-huangming@linux.alibaba.com> In-Reply-To: <20220209122558.60329-1-huangming@linux.alibaba.com> References: <20220209122558.60329-1-huangming@linux.alibaba.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,huangming@linux.alibaba.com X-Gm-Message-State: U3bolJwZSlRPENHcLVjrALm4x1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1644409594; bh=SEeD2MCC23nw6S5oNiWcDyVjZXY+0Dk6+gc6LJ1ZmDc=; h=Cc:Date:From:Reply-To:Subject:To; b=S+9YXSN7LRD9h6WMM8BP3Kjt8EV7iG6CRwsrc3AZcn4yRQ4T4fvpSMdNElU8WEp1xkF b7N1pzeM4oFWZWbRhkPIi1DnJlgQUWoT7gSTgOXCaV1kdomxm/FqH0wA0jPlRc7AoqGZm k13UPfRcup4Hl72y4HOULDNkXZL6fvjl2pI= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1644409595674100006 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The rare case (create hob failed) should be considered. Assert for StandaloneMmCoreHobLib and return NULL for StandaloneMmobLib. Signed-off-by: Ming Huang --- StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Arm/StandaloneMmCoreHobLib.= c | 6 ++++++ StandaloneMmPkg/Library/StandaloneMmHobLib/StandaloneMmHobLib.c = | 3 +++ 2 files changed, 9 insertions(+) diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Arm/StandaloneM= mCoreHobLib.c b/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Arm/Standalo= neMmCoreHobLib.c index 1550e1babc..d27e5ceaa4 100644 --- a/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Arm/StandaloneMmCoreHo= bLib.c +++ b/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Arm/StandaloneMmCoreHo= bLib.c @@ -89,6 +89,7 @@ BuildModuleHob ( ); =20 Hob =3D CreateHob (EFI_HOB_TYPE_MEMORY_ALLOCATION, sizeof (EFI_HOB_MEMOR= Y_ALLOCATION_MODULE)); + ASSERT (Hob !=3D NULL); =20 CopyGuid (&(Hob->MemoryAllocationHeader.Name), &gEfiHobMemoryAllocModule= Guid); Hob->MemoryAllocationHeader.MemoryBaseAddress =3D MemoryAllocationModule; @@ -167,6 +168,7 @@ BuildGuidHob ( ASSERT (DataLength <=3D (0xffff - sizeof (EFI_HOB_GUID_TYPE))); =20 Hob =3D CreateHob (EFI_HOB_TYPE_GUID_EXTENSION, (UINT16)(sizeof (EFI_HOB= _GUID_TYPE) + DataLength)); + ASSERT (Hob !=3D NULL); CopyGuid (&Hob->Name, Guid); return Hob + 1; } @@ -226,6 +228,7 @@ BuildFvHob ( EFI_HOB_FIRMWARE_VOLUME *Hob; =20 Hob =3D CreateHob (EFI_HOB_TYPE_FV, sizeof (EFI_HOB_FIRMWARE_VOLUME)); + ASSERT (Hob !=3D NULL); =20 Hob->BaseAddress =3D BaseAddress; Hob->Length =3D Length; @@ -255,6 +258,7 @@ BuildFv2Hob ( EFI_HOB_FIRMWARE_VOLUME2 *Hob; =20 Hob =3D CreateHob (EFI_HOB_TYPE_FV2, sizeof (EFI_HOB_FIRMWARE_VOLUME2)); + ASSERT (Hob !=3D NULL); =20 Hob->BaseAddress =3D BaseAddress; Hob->Length =3D Length; @@ -282,6 +286,7 @@ BuildCpuHob ( EFI_HOB_CPU *Hob; =20 Hob =3D CreateHob (EFI_HOB_TYPE_CPU, sizeof (EFI_HOB_CPU)); + ASSERT (Hob !=3D NULL); =20 Hob->SizeOfMemorySpace =3D SizeOfMemorySpace; Hob->SizeOfIoSpace =3D SizeOfIoSpace; @@ -319,6 +324,7 @@ BuildMemoryAllocationHob ( ); =20 Hob =3D CreateHob (EFI_HOB_TYPE_MEMORY_ALLOCATION, sizeof (EFI_HOB_MEMOR= Y_ALLOCATION)); + ASSERT (Hob !=3D NULL); =20 ZeroMem (&(Hob->AllocDescriptor.Name), sizeof (EFI_GUID)); Hob->AllocDescriptor.MemoryBaseAddress =3D BaseAddress; diff --git a/StandaloneMmPkg/Library/StandaloneMmHobLib/StandaloneMmHobLib.= c b/StandaloneMmPkg/Library/StandaloneMmHobLib/StandaloneMmHobLib.c index ee61bdd227..4acd44ceb3 100644 --- a/StandaloneMmPkg/Library/StandaloneMmHobLib/StandaloneMmHobLib.c +++ b/StandaloneMmPkg/Library/StandaloneMmHobLib/StandaloneMmHobLib.c @@ -396,6 +396,9 @@ BuildGuidHob ( ASSERT (DataLength <=3D (0xffff - sizeof (EFI_HOB_GUID_TYPE))); =20 Hob =3D CreateHob (EFI_HOB_TYPE_GUID_EXTENSION, (UINT16)(sizeof (EFI_HOB= _GUID_TYPE) + DataLength)); + if (Hob =3D=3D NULL) { + return NULL; + } CopyGuid (&Hob->Name, Guid); return Hob + 1; } --=20 2.17.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 (#86525): https://edk2.groups.io/g/devel/message/86525 Mute This Topic: https://groups.io/mt/89020083/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- From nobody Fri May 17 01:44:09 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+86527+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+86527+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=linux.alibaba.com ARC-Seal: i=1; a=rsa-sha256; t=1644409597; cv=none; d=zohomail.com; s=zohoarc; b=NbRgAFmOmsWRX1lEmRo3uriNglxn+HqJZ5ByxDudXhO99oNSC9mFEVOFkcTU4FGxVsgvrzZmi2slGjhu5NpQTa1Y95K6v4pFDAHK1ScIkYyM1saZjG5YywCbf0a59uiyR0zE4npL11Xw7SwqadRkumPnS0hJzRZryWEzBAXxtx4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644409597; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=7B3Ng6mZ0oIReW7ivTK8TRB2Ao9V9KP5JHlwFKbmh6o=; b=S8sGE77vQcGid9M8gl9hmGEoIfp/40aFfQe6i9yNEeGGs3EkyJYLArv9Y4aIU551SkNVSQ8SsFec3DYs4pI7l2nPgZO0CWN4I6hWae7RsnVJ4yMycTvu5ZU4KOIRJhaBLXyVBDavEkpzegdifU6T3qW5ne1YMj4HAnUoiUbtko0= 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+86527+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1644409597279615.5838459303995; Wed, 9 Feb 2022 04:26:37 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id HALUYY1788612xbpeGh13EsA; Wed, 09 Feb 2022 04:26:37 -0800 X-Received: from out30-130.freemail.mail.aliyun.com (out30-130.freemail.mail.aliyun.com [115.124.30.130]) by mx.groups.io with SMTP id smtpd.web10.25607.1644409596074864870 for ; Wed, 09 Feb 2022 04:26:36 -0800 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R131e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04394;MF=huangming@linux.alibaba.com;NM=1;PH=DS;RN=7;SR=0;TI=SMTPD_---0V4.E3mf_1644409590; X-Received: from 842effaa37a8.tbsite.net(mailfrom:huangming@linux.alibaba.com fp:SMTPD_---0V4.E3mf_1644409590) by smtp.aliyun-inc.com(127.0.0.1); Wed, 09 Feb 2022 20:26:31 +0800 From: "Ming Huang" To: devel@edk2.groups.io, sami.mujawar@arm.com, ardb+tianocore@kernel.org, jiewen.yao@intel.com, supreeth.venkatesh@arm.com Cc: ming.huang-@outlook.com, Ming Huang Subject: [edk2-devel] [PATCH v1 2/2] StandaloneMmPkg: Fix HOB space and heap space conflicted issue Date: Wed, 9 Feb 2022 20:25:58 +0800 Message-Id: <20220209122558.60329-3-huangming@linux.alibaba.com> In-Reply-To: <20220209122558.60329-1-huangming@linux.alibaba.com> References: <20220209122558.60329-1-huangming@linux.alibaba.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,huangming@linux.alibaba.com X-Gm-Message-State: KOtjIio9l84a4jF18ZOIcNkzx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1644409597; bh=Kc5kBGSS8//NWVqVz3uad2/qBkOc3Byy0xF749/4/70=; h=Cc:Date:From:Reply-To:Subject:To; b=wqHiRv5/ymuzuzzKF6Hlx2sataAHc7BOTlpDXTWfRRhYUcVL2J8nVKV0/l+IoWbXuuy OGVYGXN3HfsCPqvZDFDgRtk65h/zilhCCWSvgwD80gn7jXXZcBFFL5wO3P5OrjNPPo4L1 y4lRTL2BKylYvxPPzdW9gOqc3xfAp9lD3qE= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1644409598091100002 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The heap space will be rewrote if a StandloneMmPkg module create HOB by BuildGuidHob() interface and write data to HOB space. Add a PCD PcdMemoryHobSize for pre-allocation a space to create HOB to fix this issue. Signed-off-by: Ming Huang Tested-by: Nhi Pham --- StandaloneMmPkg/Core/StandaloneMmCore.c | 17 ++++++++++++++++- StandaloneMmPkg/Core/StandaloneMmCore.inf | 3 +++ StandaloneMmPkg/StandaloneMmPkg.dec | 2 ++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/StandaloneMmPkg/Core/StandaloneMmCore.c b/StandaloneMmPkg/Core= /StandaloneMmCore.c index d221f1d111..1cf259d946 100644 --- a/StandaloneMmPkg/Core/StandaloneMmCore.c +++ b/StandaloneMmPkg/Core/StandaloneMmCore.c @@ -512,6 +512,9 @@ StandaloneMmMain ( EFI_MMRAM_DESCRIPTOR *MmramRanges; UINTN MmramRangeCount; EFI_HOB_FIRMWARE_VOLUME *BfvHob; + EFI_HOB_HANDOFF_INFO_TABLE *HandOffHobNew; + EFI_HOB_HANDOFF_INFO_TABLE *HandOffHobOrg; + UINT64 MaxHobSize =3D PcdGet64 (PcdMemoryHobSiz= e); =20 ProcessLibraryConstructorList (HobStart, &gMmCoreMmst); =20 @@ -619,10 +622,22 @@ StandaloneMmMain ( // HobSize =3D GetHobListSize (HobStart); DEBUG ((DEBUG_INFO, "HobSize - 0x%x\n", HobSize)); - MmHobStart =3D AllocatePool (HobSize); + ASSERT (HobSize <=3D MaxHobSize); + MmHobStart =3D AllocatePool (MaxHobSize); DEBUG ((DEBUG_INFO, "MmHobStart - 0x%x\n", MmHobStart)); ASSERT (MmHobStart !=3D NULL); CopyMem (MmHobStart, HobStart, HobSize); + // + // Initlialize the new HOB table + // + HandOffHobOrg =3D (EFI_HOB_HANDOFF_INFO_TABLE *)HobStart; + HandOffHobNew =3D (EFI_HOB_HANDOFF_INFO_TABLE *)MmHobStart; + HandOffHobNew->EfiEndOfHobList =3D (EFI_PHYSICAL_ADDRESS)MmHobStart + + (HandOffHobOrg->EfiEndOfHobList - (EFI_PHYSICAL_ADDRESS)HobStart); + HandOffHobNew->EfiFreeMemoryBottom =3D HandOffHobNew->EfiEndOfHobList + + sizeof (EFI_HOB_GENERIC_HEADER); + HandOffHobNew->EfiFreeMemoryTop =3D (EFI_PHYSICAL_ADDRESS)MmHobStart + M= axHobSize; + Status =3D MmInstallConfigurationTable (&gMmCoreMmst, &gEfiHobListGuid, = MmHobStart, HobSize); ASSERT_EFI_ERROR (Status); =20 diff --git a/StandaloneMmPkg/Core/StandaloneMmCore.inf b/StandaloneMmPkg/Co= re/StandaloneMmCore.inf index c44b9ff333..37e6135d73 100644 --- a/StandaloneMmPkg/Core/StandaloneMmCore.inf +++ b/StandaloneMmPkg/Core/StandaloneMmCore.inf @@ -76,6 +76,9 @@ gEfiEventExitBootServicesGuid gEfiEventReadyToBootGuid =20 +[FixedPcd] + gStandaloneMmPkgTokenSpaceGuid.PcdMemoryHobSize + # # This configuration fails for CLANGPDB, which does not support PIE in the= GCC # sense. Such however is required for ARM family StandaloneMmCore diff --git a/StandaloneMmPkg/StandaloneMmPkg.dec b/StandaloneMmPkg/Standalo= neMmPkg.dec index 46784d94e4..cf554676e2 100644 --- a/StandaloneMmPkg/StandaloneMmPkg.dec +++ b/StandaloneMmPkg/StandaloneMmPkg.dec @@ -48,3 +48,5 @@ gEfiStandaloneMmNonSecureBufferGuid =3D { 0xf00497e3, 0xbfa2, 0x41a= 1, { 0x9d, 0x29, 0x54, 0xc2, 0xe9, 0x37, 0x21, 0xc5 }} gEfiArmTfCpuDriverEpDescriptorGuid =3D { 0x6ecbd5a1, 0xc0f8, 0x470= 2, { 0x83, 0x01, 0x4f, 0xc2, 0xc5, 0x47, 0x0a, 0x51 }} =20 +[PcdsFixedAtBuild] + gStandaloneMmPkgTokenSpaceGuid.PcdMemoryHobSize|0x00000000|UINT64|0x0000= 0004 --=20 2.17.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 (#86527): https://edk2.groups.io/g/devel/message/86527 Mute This Topic: https://groups.io/mt/89020085/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-