]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Vlv2TbltDevicePkg/FvbRuntimeDxe: correct NumOfLba vararg type in EraseBlocks()
authorLaszlo Ersek <lersek@redhat.com>
Thu, 18 May 2017 15:04:27 +0000 (23:04 +0800)
committerzwei4 <david.wei@intel.com>
Fri, 26 May 2017 06:41:13 +0000 (14:41 +0800)
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 <david.wei@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Mang Guo <mang.guo@intel.com>
Reported-by: Jordan Justen <jordan.l.justen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Vlv2TbltDevicePkg/FvbRuntimeDxe/FvbService.c
Vlv2TbltDevicePkg/FvbRuntimeDxe/FvbSmmDxe.c

index b0013f91836844520edc713a72b31709ed1ad36a..89b9410424201b94c0dc04a4225cce667b52adef 100644 (file)
@@ -793,7 +793,7 @@ FvbProtocolEraseBlocks (
       break;\r
     }\r
 \r
-    NumOfLba = VA_ARG (args, UINT32);\r
+    NumOfLba = VA_ARG (args, UINTN);\r
 \r
     //\r
     // Check input parameters.\r
@@ -817,7 +817,7 @@ FvbProtocolEraseBlocks (
       break;\r
     }\r
 \r
-    NumOfLba = VA_ARG (args, UINT32);\r
+    NumOfLba = VA_ARG (args, UINTN);\r
 \r
     while ( NumOfLba > 0 ) {\r
       Status = FvbEraseBlock (FvbDevice->Instance, StartingLba);\r
index 20aaf8720f726dff24e2791372c62134ce44ad14..22a4bdcdd4922c12e51a12b099a362a2b78e2de4 100644 (file)
@@ -725,7 +725,7 @@ FvbEraseBlocks (
       break;\r
     }\r
 \r
-    NumOfLba = VA_ARG (Marker, UINT32);\r
+    NumOfLba = VA_ARG (Marker, UINTN);\r
     if (NumOfLba == 0) {\r
       return EFI_INVALID_PARAMETER;\r
     }\r
@@ -742,7 +742,7 @@ FvbEraseBlocks (
     if (StartingLba == EFI_LBA_LIST_TERMINATOR ) {\r
       break;\r
     }\r
-    NumOfLba = VA_ARG (Marker, UINT32);\r
+    NumOfLba = VA_ARG (Marker, UINTN);\r
     Status = EraseBlock (This, StartingLba, NumOfLba);\r
     if (EFI_ERROR (Status)) {\r
       break;\r