From: Laszlo Ersek Date: Thu, 18 May 2017 12:48:13 +0000 (+0200) Subject: QuarkPlatformPkg/SpiFvbServices: correct NumOfLba vararg type in EraseBlocks() X-Git-Tag: edk2-stable201903~3981 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=b9036ebee9ddaf26afc9fbe3236c3d03f83c1b0a QuarkPlatformPkg/SpiFvbServices: correct NumOfLba vararg type in EraseBlocks() According to the PI spec, Volume 3, EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL.EraseBlocks(): > The variable argument list is a list of tuples. Each tuple describes a > range of LBAs to erase and consists of the following: > * An EFI_LBA that indicates the starting LBA > * A UINTN that indicates the number of blocks to erase (NB, in edk2, EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL is a typedef to EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL.) In this driver, the NumOfLba local variable is defined with type UINTN, but the TYPE argument passed to VA_ARG() is UINT32. Fix the mismatch. Cc: Jordan Justen Cc: Kelly Steele Cc: Michael D Kinney Reported-by: Jordan Justen Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek Reviewed-by: Jordan Justen Reviewed-by: Michael D Kinney --- diff --git a/QuarkPlatformPkg/Platform/SpiFvbServices/FwBlockService.c b/QuarkPlatformPkg/Platform/SpiFvbServices/FwBlockService.c index dbb5512f38..0e7a7b79a1 100644 --- a/QuarkPlatformPkg/Platform/SpiFvbServices/FwBlockService.c +++ b/QuarkPlatformPkg/Platform/SpiFvbServices/FwBlockService.c @@ -1211,7 +1211,7 @@ Returns: break; } - NumOfLba = VA_ARG (args, UINT32); + NumOfLba = VA_ARG (args, UINTN); // // Check input parameters @@ -1235,7 +1235,7 @@ Returns: break; } - NumOfLba = VA_ARG (args, UINT32); + NumOfLba = VA_ARG (args, UINTN); while (NumOfLba > 0) { Status = FvbEraseBlock (FvbDevice->Instance, StartingLba, mFvbModuleGlobal, EfiGoneVirtual ());