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 <jordan.l.justen@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@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>
---
Notes:
unbuilt, untested
DuetPkg/FvbRuntimeService/FWBlockService.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/DuetPkg/FvbRuntimeService/FWBlockService.c b/DuetPkg/FvbRuntimeService/FWBlockService.c
index e0ddbd53121b..bc663273d4ce 100644
--- a/DuetPkg/FvbRuntimeService/FWBlockService.c
+++ b/DuetPkg/FvbRuntimeService/FWBlockService.c
@@ -991,7 +991,7 @@ Returns:
break;
}
- NumOfLba = VA_ARG (args, UINT32);
+ NumOfLba = VA_ARG (args, UINTN);
//
// Check input parameters
@@ -1011,7 +1011,7 @@ Returns:
break;
}
- NumOfLba = VA_ARG (args, UINT32);
+ NumOfLba = VA_ARG (args, UINTN);
while (NumOfLba > 0) {
Status = FvbEraseBlock (FvbDevice->Instance, StartingLba, mFvbModuleGlobal, EfiGoneVirtual ());
--
2.9.3
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Ray, can you please review this patch? Thanks, Laszlo On 05/18/17 17:04, Laszlo Ersek wrote: > 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 <jordan.l.justen@intel.com> > Cc: Ruiyu Ni <ruiyu.ni@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> > --- > > Notes: > unbuilt, untested > > DuetPkg/FvbRuntimeService/FWBlockService.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/DuetPkg/FvbRuntimeService/FWBlockService.c b/DuetPkg/FvbRuntimeService/FWBlockService.c > index e0ddbd53121b..bc663273d4ce 100644 > --- a/DuetPkg/FvbRuntimeService/FWBlockService.c > +++ b/DuetPkg/FvbRuntimeService/FWBlockService.c > @@ -991,7 +991,7 @@ Returns: > break; > } > > - NumOfLba = VA_ARG (args, UINT32); > + NumOfLba = VA_ARG (args, UINTN); > > // > // Check input parameters > @@ -1011,7 +1011,7 @@ Returns: > break; > } > > - NumOfLba = VA_ARG (args, UINT32); > + NumOfLba = VA_ARG (args, UINTN); > > while (NumOfLba > 0) { > Status = FvbEraseBlock (FvbDevice->Instance, StartingLba, mFvbModuleGlobal, EfiGoneVirtual ()); > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
Reviewed-by: Hao Wu <hao.a.wu@intel.com> Best Regards, Hao Wu > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Laszlo > Ersek > Sent: Thursday, May 18, 2017 11:04 PM > To: edk2-devel-01 > Cc: Ni, Ruiyu; Justen, Jordan L > Subject: [edk2] [PATCH 2/8] DuetPkg/FvbRuntimeService: 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 <jordan.l.justen@intel.com> > Cc: Ruiyu Ni <ruiyu.ni@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> > --- > > Notes: > unbuilt, untested > > DuetPkg/FvbRuntimeService/FWBlockService.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/DuetPkg/FvbRuntimeService/FWBlockService.c > b/DuetPkg/FvbRuntimeService/FWBlockService.c > index e0ddbd53121b..bc663273d4ce 100644 > --- a/DuetPkg/FvbRuntimeService/FWBlockService.c > +++ b/DuetPkg/FvbRuntimeService/FWBlockService.c > @@ -991,7 +991,7 @@ Returns: > break; > } > > - NumOfLba = VA_ARG (args, UINT32); > + NumOfLba = VA_ARG (args, UINTN); > > // > // Check input parameters > @@ -1011,7 +1011,7 @@ Returns: > break; > } > > - NumOfLba = VA_ARG (args, UINT32); > + NumOfLba = VA_ARG (args, UINTN); > > while (NumOfLba > 0) { > Status = FvbEraseBlock (FvbDevice->Instance, StartingLba, > mFvbModuleGlobal, EfiGoneVirtual ()); > -- > 2.9.3 > > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On 05/27/17 02:54, Wu, Hao A wrote: > Reviewed-by: Hao Wu <hao.a.wu@intel.com> Commit d98e939f4fd7. Thanks! Laszlo >> -----Original Message----- >> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Laszlo >> Ersek >> Sent: Thursday, May 18, 2017 11:04 PM >> To: edk2-devel-01 >> Cc: Ni, Ruiyu; Justen, Jordan L >> Subject: [edk2] [PATCH 2/8] DuetPkg/FvbRuntimeService: 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 <jordan.l.justen@intel.com> >> Cc: Ruiyu Ni <ruiyu.ni@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> >> --- >> >> Notes: >> unbuilt, untested >> >> DuetPkg/FvbRuntimeService/FWBlockService.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/DuetPkg/FvbRuntimeService/FWBlockService.c >> b/DuetPkg/FvbRuntimeService/FWBlockService.c >> index e0ddbd53121b..bc663273d4ce 100644 >> --- a/DuetPkg/FvbRuntimeService/FWBlockService.c >> +++ b/DuetPkg/FvbRuntimeService/FWBlockService.c >> @@ -991,7 +991,7 @@ Returns: >> break; >> } >> >> - NumOfLba = VA_ARG (args, UINT32); >> + NumOfLba = VA_ARG (args, UINTN); >> >> // >> // Check input parameters >> @@ -1011,7 +1011,7 @@ Returns: >> break; >> } >> >> - NumOfLba = VA_ARG (args, UINT32); >> + NumOfLba = VA_ARG (args, UINTN); >> >> while (NumOfLba > 0) { >> Status = FvbEraseBlock (FvbDevice->Instance, StartingLba, >> mFvbModuleGlobal, EfiGoneVirtual ()); >> -- >> 2.9.3 >> >> >> _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.01.org >> https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
© 2016 - 2024 Red Hat, Inc.