Reviewed-by: Ray Ni <ray...@intel.com> > -----Original Message----- > From: Gao, Zhichao <zhichao....@intel.com> > Sent: Tuesday, August 11, 2020 2:43 PM > To: devel@edk2.groups.io > Cc: Wang, Jian J <jian.j.w...@intel.com>; Wu, Hao A <hao.a...@intel.com>; Ni, > Ray <ray...@intel.com>; Gary Lin > <g...@suse.com>; Andrew Fish <af...@apple.com> > Subject: [PATCH 3/3] MdeModulePkg/PartitionDxe: Fix the incorrect LBA size in > child hander > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2843 > > PartitionInstallChildHandle's parameters Start and End is counted > by the BlockSize, but in the implementation it uses the parent > device's BlockSize to calculate the new Start, End and LastBlock. > It would cause the driver report incorrect block scope and the file > system would fail to be found with right block scope. > So correct it to the right value. > > Cc: Jian J Wang <jian.j.w...@intel.com> > Cc: Hao A Wu <hao.a...@intel.com> > Cc: Ray Ni <ray...@intel.com> > Cc: Gary Lin <g...@suse.com> > Cc: Andrew Fish <af...@apple.com> > Signed-off-by: Zhichao Gao <zhichao....@intel.com> > --- > MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c | 12 +++--------- > 1 file changed, 3 insertions(+), 9 deletions(-) > > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > index 473e091320..f10ce7c65b 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > @@ -1149,8 +1149,8 @@ PartitionInstallChildHandle ( > > Private->Signature = PARTITION_PRIVATE_DATA_SIGNATURE; > > - Private->Start = MultU64x32 (Start, > ParentBlockIo->Media->BlockSize); > - Private->End = MultU64x32 (End + 1, > ParentBlockIo->Media->BlockSize); > + Private->Start = MultU64x32 (Start, BlockSize); > + Private->End = MultU64x32 (End + 1, BlockSize); > > Private->BlockSize = BlockSize; > Private->ParentBlockIo = ParentBlockIo; > @@ -1187,13 +1187,7 @@ PartitionInstallChildHandle ( > > Private->Media.IoAlign = 0; > Private->Media.LogicalPartition = TRUE; > - Private->Media.LastBlock = DivU64x32 ( > - MultU64x32 ( > - End - Start + 1, > - ParentBlockIo->Media->BlockSize > - ), > - BlockSize > - ) - 1; > + Private->Media.LastBlock = End - Start; > > Private->Media.BlockSize = (UINT32) BlockSize; > > -- > 2.21.0.windows.1
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#63975): https://edk2.groups.io/g/devel/message/63975 Mute This Topic: https://groups.io/mt/76121501/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-