summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg
diff options
context:
space:
mode:
authorZhichao Gao <zhichao.gao@intel.com>2020-10-20 09:38:04 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2020-10-20 06:12:12 +0000
commitf82b827c92f77eac8debdce6ef9689d156771871 (patch)
treeeb74f893ac60c72a4dd725537324e93e39fb081a /MdeModulePkg
parent29d14d3a30fdfbe017d39b759423832054280f10 (diff)
downloadedk2-f82b827c92f77eac8debdce6ef9689d156771871.tar.gz
edk2-f82b827c92f77eac8debdce6ef9689d156771871.tar.bz2
edk2-f82b827c92f77eac8debdce6ef9689d156771871.zip
Revert "MdeModulePkg/PartitionDxe: Fix the incorrect LBA size in child ..."
This reverts commit e0eacd7daa6f2e59de2b35a5dfe8bb4c38821e31. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3012 The patch to fix LBA size would cause a regression that make the partition of CD image with media type other than NO_EMULATOR unobserved. The patch used to fix the CD image's MBR table issue. The CD MBR table would always be ignored because it would be handled by the Eltorito partition handler first and never go into the MBR handler. So directly revert it. Cc: Ray Ni <ray.ni@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Signed-off-by: Zhichao Gao <zhichao.gao@intel.com> Reviewed-by: Ray Ni <ray.ni@intel.com> Tested-by: Gary Lin <glin@suse.com>
Diffstat (limited to 'MdeModulePkg')
-rw-r--r--MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c
index f10ce7c65b..473e091320 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, BlockSize);
- Private->End = MultU64x32 (End + 1, BlockSize);
+ Private->Start = MultU64x32 (Start, ParentBlockIo->Media->BlockSize);
+ Private->End = MultU64x32 (End + 1, ParentBlockIo->Media->BlockSize);
Private->BlockSize = BlockSize;
Private->ParentBlockIo = ParentBlockIo;
@@ -1187,7 +1187,13 @@ PartitionInstallChildHandle (
Private->Media.IoAlign = 0;
Private->Media.LogicalPartition = TRUE;
- Private->Media.LastBlock = End - Start;
+ Private->Media.LastBlock = DivU64x32 (
+ MultU64x32 (
+ End - Start + 1,
+ ParentBlockIo->Media->BlockSize
+ ),
+ BlockSize
+ ) - 1;
Private->Media.BlockSize = (UINT32) BlockSize;