summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg
diff options
context:
space:
mode:
authorJiewen Yao <jiewen.yao@intel.com>2016-12-24 00:00:51 +0800
committerJiewen Yao <jiewen.yao@intel.com>2016-12-26 12:23:33 +0800
commit777034ce83a8ee4a13cda7c45524933459237595 (patch)
treee55abe7be4e9b52f6bea49045f1e6c7fe5dfe970 /MdeModulePkg
parent8f6db16134b60721af3eed53ef5705dca452d128 (diff)
downloadedk2-777034ce83a8ee4a13cda7c45524933459237595.tar.gz
edk2-777034ce83a8ee4a13cda7c45524933459237595.tar.bz2
edk2-777034ce83a8ee4a13cda7c45524933459237595.zip
MdeModulePkg/CapsuleLib: Support result rolling over.
According to UEFI spec, capsule result variable may roll over to 0. Cc: Feng Tian <feng.tian@intel.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Chao Zhang <chao.b.zhang@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jiewen Yao <jiewen.yao@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
Diffstat (limited to 'MdeModulePkg')
-rw-r--r--MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleReportLib.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleReportLib.c b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleReportLib.c
index 61ede5cfa9..ce79a5a619 100644
--- a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleReportLib.c
+++ b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleReportLib.c
@@ -167,7 +167,7 @@ WriteNewCapsuleResultVariableCache (
Get a new capsule status variable index.
@return A new capsule status variable index.
- @retval -1 No new capsule status variable index.
+ @retval 0 No new capsule status variable index. Rolling over.
**/
INTN
GetNewCapsuleResultIndex (
@@ -178,7 +178,8 @@ GetNewCapsuleResultIndex (
CurrentIndex = GetCurrentCapsuleLastIndex();
if (CurrentIndex >= PcdGet16(PcdCapsuleMax)) {
- return -1;
+ DEBUG((DEBUG_INFO, " CapsuleResult variable Rolling Over!\n"));
+ return 0;
}
return CurrentIndex + 1;
@@ -206,9 +207,7 @@ WriteNewCapsuleResultVariable (
CapsuleResultIndex = GetNewCapsuleResultIndex();
DEBUG((DEBUG_INFO, "New CapsuleResultIndex - 0x%x\n", CapsuleResultIndex));
- if (CapsuleResultIndex == -1) {
- return EFI_OUT_OF_RESOURCES;
- }
+
UnicodeSPrint(
CapsuleResultStr,
sizeof(CapsuleResultStr),