ArmVirtPkg/PlatformBootManagerLib: Don't update progress if Pcd is 0

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2266

Similar to what we now do for OVMF, we need to consider the possibility
that PlatformBootManagerWaitCallback () may be called with a
PcdPlatformBootTimeOut that was set to zero, in which case the call should
simply return.

We also change the initial timeout variable name to make the code explicit.

Signed-off-by: Pete Batard <pete@akeo.ie>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Message-Id: <20191014150311.16740-3-pete@akeo.ie>
This commit is contained in:
Pete Batard 2019-10-14 16:03:11 +01:00 committed by Laszlo Ersek
parent c3c90d8aa7
commit 23ab8df01a
1 changed files with 11 additions and 3 deletions

View File

@ -842,9 +842,17 @@ PlatformBootManagerWaitCallback (
{
EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Black;
EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION White;
UINT16 Timeout;
UINT16 TimeoutInitial;
Timeout = PcdGet16 (PcdPlatformBootTimeOut);
TimeoutInitial = PcdGet16 (PcdPlatformBootTimeOut);
//
// If PcdPlatformBootTimeOut is set to zero, then we consider
// that no progress update should be enacted.
//
if (TimeoutInitial == 0) {
return;
}
Black.Raw = 0x00000000;
White.Raw = 0x00FFFFFF;
@ -854,7 +862,7 @@ PlatformBootManagerWaitCallback (
Black.Pixel,
L"Start boot option",
White.Pixel,
(Timeout - TimeoutRemain) * 100 / Timeout,
(TimeoutInitial - TimeoutRemain) * 100 / TimeoutInitial,
0
);
}