Bob: Yes. 'BuildGather' is better. Thanks Liming > -----邮件原件----- > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Bob Morgan > via groups.io > 发送时间: 2021年10月30日 0:02 > 收件人: devel@edk2.groups.io; gaolim...@byosoft.com.cn > 抄送: 'Jian J Wang' <jian.j.w...@intel.com>; 'Guomin Jiang' > <guomin.ji...@intel.com> > 主题: Re: [edk2-devel] 回复: [PATCH] MdeModulePkg/DxeCapsuleLibFmp: > Capsule on Disk file name capsule > > Hi Liming, > > BuildSg is supposed to mean 'Build Scatter-Gather'. Maybe 'BuildGather' > would be a better goto label since it matches the comment and the function? > > Let me know. > > Thanks, > > -bob > > > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of gaoliming > via groups.io > Sent: Thursday, October 28, 2021 7:46 PM > To: Bob Morgan <b...@nvidia.com>; devel@edk2.groups.io > Cc: 'Jian J Wang' <jian.j.w...@intel.com>; 'Guomin Jiang' > <guomin.ji...@intel.com> > Subject: [edk2-devel] 回复: [PATCH] MdeModulePkg/DxeCapsuleLibFmp: > Capsule on Disk file name capsule > > External email: Use caution opening links or attachments > > > Bob: > > > > -----邮件原件----- > > 发件人: Bob Morgan <b...@nvidia.com> > > 发送时间: 2021年10月19日 4:12 > > 收件人: devel@edk2.groups.io > > 抄送: Bob Morgan <b...@nvidia.com>; Jian J Wang > <jian.j.w...@intel.com>; > > Liming Gao <gaolim...@byosoft.com.cn>; Guomin Jiang > > <guomin.ji...@intel.com> > > 主题: [PATCH] MdeModulePkg/DxeCapsuleLibFmp: Capsule on Disk file > name > > capsule > > > > Enhance RelocateCapsuleToRam() to skip creation of the Capsule on Disk > > file name capsule if PcdSupportUpdateCapsuleReset feature is not enabled. > > This avoids an EFI_UNSUPPORTED return status from UpdateCapsule() > when > > the file name capsule is encountered and PcdSupportUpdateCapsuleReset > > is FALSE. > > > > Cc: Jian J Wang <jian.j.w...@intel.com> > > Cc: Liming Gao <gaolim...@byosoft.com.cn> > > Cc: Guomin Jiang <guomin.ji...@intel.com> > > Signed-off-by: Bob Morgan <b...@nvidia.com> > > --- > > .../Library/DxeCapsuleLibFmp/CapsuleOnDisk.c | 19 > > ++++++++++++++++--- > > 1 file changed, 16 insertions(+), 3 deletions(-) > > > > diff --git a/MdeModulePkg/Library/DxeCapsuleLibFmp/CapsuleOnDisk.c > > b/MdeModulePkg/Library/DxeCapsuleLibFmp/CapsuleOnDisk.c > > index 4c32c6cdcf..e65e335585 100644 > > --- a/MdeModulePkg/Library/DxeCapsuleLibFmp/CapsuleOnDisk.c > > +++ b/MdeModulePkg/Library/DxeCapsuleLibFmp/CapsuleOnDisk.c > > @@ -1739,6 +1739,7 @@ RelocateCapsuleToRam ( > > UINT8 *StringBuf; > > UINTN StringSize; > > UINTN TotalStringSize; > > + UINTN CapsulesToProcess; > > > > CapsuleOnDiskBuf = NULL; > > BlockDescriptors = NULL; > > @@ -1778,6 +1779,13 @@ RelocateCapsuleToRam ( > > TotalStringSize += StrSize > > (CapsuleOnDiskBuf[Index].FileInfo->FileName); > > } > > > > + // If Persist Across Reset isn't supported, skip the file name > > + strings > capsule > > + if (!FeaturePcdGet (PcdSupportUpdateCapsuleReset)) { > > + CapsulesToProcess = CapsuleOnDiskNum; > > + goto BuildSg; > > + } > > + CapsulesToProcess = CapsuleOnDiskNum + 1; > > + > > FileNameCapsule = AllocateZeroPool (sizeof (EFI_CAPSULE_HEADER) + > > TotalStringSize); > > if (FileNameCapsule == NULL) { > > DEBUG ((DEBUG_ERROR, "Fail to allocate memory for name > > capsule.\n")); @@ -1804,18 +1812,23 @@ RelocateCapsuleToRam ( > > // > > // 3. Build Gather list for the capsules > > // > > - Status = BuildGatherList (CapsuleBuffer, CapsuleSize, > > CapsuleOnDiskNum > + > > 1, &BlockDescriptors); > > +BuildSg: > > What does 'BuildSg' mean? > > Thanks > Liming > > + Status = BuildGatherList (CapsuleBuffer, CapsuleSize, > CapsulesToProcess, > > &BlockDescriptors); > > if (EFI_ERROR (Status) || BlockDescriptors == NULL) { > > FreePool (CapsuleBuffer); > > FreePool (CapsuleSize); > > - FreePool (FileNameCapsule); > > + if (FileNameCapsule != NULL) { > > + FreePool (FileNameCapsule); > > + } > > return EFI_OUT_OF_RESOURCES; > > } > > > > // > > // 4. Call UpdateCapsule() service > > // > > - Status = gRT->UpdateCapsule((EFI_CAPSULE_HEADER **) CapsuleBuffer, > > CapsuleOnDiskNum + 1, (UINTN) BlockDescriptors); > > + Status = gRT->UpdateCapsule ((EFI_CAPSULE_HEADER **) > CapsuleBuffer, > > + CapsulesToProcess, > > + (UINTN) BlockDescriptors); > > > > return Status; > > } > > -- > > 2.17.1 > > > > > > > > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#83070): https://edk2.groups.io/g/devel/message/83070 Mute This Topic: https://groups.io/mt/86757076/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-