From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=66.187.233.73; helo=mx1.redhat.com; envelope-from=lersek@redhat.com; receiver=edk2-devel@lists.01.org Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 07FFA210DF5DD for ; Wed, 8 Aug 2018 04:06:27 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id DAB5A814DE89; Wed, 8 Aug 2018 11:06:26 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-208.rdu2.redhat.com [10.10.120.208]) by smtp.corp.redhat.com (Postfix) with ESMTP id F0C55100708A; Wed, 8 Aug 2018 11:06:25 +0000 (UTC) To: "Wang, Jian J" , "Ni, Ruiyu" , "edk2-devel@lists.01.org" Cc: "Zeng, Star" References: <20180808052739.85156-1-ruiyu.ni@intel.com> From: Laszlo Ersek Message-ID: <33948035-ccf8-c850-49fa-9ca492197336@redhat.com> Date: Wed, 8 Aug 2018 13:06:25 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Wed, 08 Aug 2018 11:06:26 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Wed, 08 Aug 2018 11:06:26 +0000 (UTC) for IP:'10.11.54.3' DOMAIN:'int-mx03.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'lersek@redhat.com' RCPT:'' Subject: Re: [PATCH v3] IntelFrameworkModulePkg/Csm: Set CSM memory executable X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Aug 2018 11:06:28 -0000 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit On 08/08/18 09:04, Wang, Jian J wrote: > Hi Ruiyu, > > In function description comments, the @retval doesn't match the changes in this patch. > > With those changes, > Reviewed-by: Jian J Wang Same from my side, Acked-by: Laszlo Ersek Thanks! Laszlo >> -----Original Message----- >> From: Ni, Ruiyu >> Sent: Wednesday, August 08, 2018 1:28 PM >> To: edk2-devel@lists.01.org >> Cc: Zeng, Star ; Laszlo Ersek ; >> Wang, Jian J >> Subject: [PATCH v3] IntelFrameworkModulePkg/Csm: Set CSM memory >> executable >> >> Commit b22a62be5cdc8fd19d87ec1ecfa5b28fb9be50ad >> * IntelFrameworkModule/LegacyBios:Use reserved memory for legacy data >> allocates reserved memory for holding legacy code/data. >> >> But with PcdDxeNxMemoryProtectionPolicy set to certain value to >> forbid execution when code is in certain type of memory, it's >> possible that a platform forbids execution when code is in reserved >> memory. The patch calls GCD service to allow such case otherwise >> CPU exception may occur. >> >> Code execution in BSCode area should be enabled by platform by >> default. >> >> Contributed-under: TianoCore Contribution Agreement 1.1 >> Signed-off-by: Ruiyu Ni >> Cc: Star Zeng >> Cc: Laszlo Ersek >> Cc: Jian Wang >> --- >> .../Csm/LegacyBiosDxe/LegacyBios.c | 28 ++++++++++++++++++---- >> 1 file changed, 23 insertions(+), 5 deletions(-) >> >> diff --git a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBios.c >> b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBios.c >> index 8f14687b28..80efe40489 100644 >> --- a/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBios.c >> +++ b/IntelFrameworkModulePkg/Csm/LegacyBiosDxe/LegacyBios.c >> @@ -64,8 +64,9 @@ AllocateLegacyMemory ( >> OUT EFI_PHYSICAL_ADDRESS *Result >> ) >> { >> - EFI_STATUS Status; >> - EFI_PHYSICAL_ADDRESS MemPage; >> + EFI_STATUS Status; >> + EFI_PHYSICAL_ADDRESS MemPage; >> + EFI_GCD_MEMORY_SPACE_DESCRIPTOR MemDesc; >> >> // >> // Allocate Pages of memory less <= StartPageAddress >> @@ -81,12 +82,29 @@ AllocateLegacyMemory ( >> // Do not ASSERT on Status error but let caller decide since some cases >> // memory is already taken but that is ok. >> // >> + if (!EFI_ERROR (Status)) { >> + if (MemoryType != EfiBootServicesCode) { >> + // >> + // Make sure that the buffer can be used to store code. >> + // >> + Status = gDS->GetMemorySpaceDescriptor (MemPage, &MemDesc); >> + if (!EFI_ERROR (Status) && (MemDesc.Attributes & EFI_MEMORY_XP) != 0) { >> + Status = gDS->SetMemorySpaceAttributes ( >> + MemPage, >> + EFI_PAGES_TO_SIZE (Pages), >> + MemDesc.Attributes & (~EFI_MEMORY_XP) >> + ); >> + } >> + if (EFI_ERROR (Status)) { >> + gBS->FreePages (MemPage, Pages); >> + } >> + } >> + } >> + >> if (!EFI_ERROR (Status)) { >> *Result = (EFI_PHYSICAL_ADDRESS) (UINTN) MemPage; >> } >> - // >> - // If reach here the status = EFI_SUCCESS >> - // >> + >> return Status; >> } >> >> -- >> 2.16.1.windows.1 >