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>
This commit is contained in:
Jiewen Yao 2016-12-24 00:00:51 +08:00
parent 8f6db16134
commit 777034ce83
1 changed files with 4 additions and 5 deletions

View File

@ -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),