Reviewed-by: zwei4 <[email protected]>
Thanks, David Wei -----Original Message----- From: Laszlo Ersek [mailto:[email protected]] Sent: Thursday, May 18, 2017 11:04 PM To: edk2-devel-01 <[email protected]> Cc: Wei, David <[email protected]>; Justen, Jordan L <[email protected]>; Guo, Mang <[email protected]> Subject: [PATCH 8/8] Vlv2TbltDevicePkg/FvbRuntimeDxe: 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: David Wei <[email protected]> Cc: Jordan Justen <[email protected]> Cc: Mang Guo <[email protected]> Reported-by: Jordan Justen <[email protected]> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <[email protected]> --- Notes: unbuilt, untested Vlv2TbltDevicePkg/FvbRuntimeDxe/FvbService.c | 4 ++-- Vlv2TbltDevicePkg/FvbRuntimeDxe/FvbSmmDxe.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Vlv2TbltDevicePkg/FvbRuntimeDxe/FvbService.c b/Vlv2TbltDevicePkg/FvbRuntimeDxe/FvbService.c index b0013f918368..89b941042420 100644 --- a/Vlv2TbltDevicePkg/FvbRuntimeDxe/FvbService.c +++ b/Vlv2TbltDevicePkg/FvbRuntimeDxe/FvbService.c @@ -793,7 +793,7 @@ FvbProtocolEraseBlocks ( break; } - NumOfLba = VA_ARG (args, UINT32); + NumOfLba = VA_ARG (args, UINTN); // // Check input parameters. @@ -817,7 +817,7 @@ FvbProtocolEraseBlocks ( break; } - NumOfLba = VA_ARG (args, UINT32); + NumOfLba = VA_ARG (args, UINTN); while ( NumOfLba > 0 ) { Status = FvbEraseBlock (FvbDevice->Instance, StartingLba); diff --git a/Vlv2TbltDevicePkg/FvbRuntimeDxe/FvbSmmDxe.c b/Vlv2TbltDevicePkg/FvbRuntimeDxe/FvbSmmDxe.c index 20aaf8720f72..22a4bdcdd492 100644 --- a/Vlv2TbltDevicePkg/FvbRuntimeDxe/FvbSmmDxe.c +++ b/Vlv2TbltDevicePkg/FvbRuntimeDxe/FvbSmmDxe.c @@ -725,7 +725,7 @@ FvbEraseBlocks ( break; } - NumOfLba = VA_ARG (Marker, UINT32); + NumOfLba = VA_ARG (Marker, UINTN); if (NumOfLba == 0) { return EFI_INVALID_PARAMETER; } @@ -742,7 +742,7 @@ FvbEraseBlocks ( if (StartingLba == EFI_LBA_LIST_TERMINATOR ) { break; } - NumOfLba = VA_ARG (Marker, UINT32); + NumOfLba = VA_ARG (Marker, UINTN); Status = EraseBlock (This, StartingLba, NumOfLba); if (EFI_ERROR (Status)) { break; -- 2.9.3 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

