From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com []) by mx.groups.io with SMTP id smtpd.web10.2735.1594175250936997826 for ; Tue, 07 Jul 2020 19:27:31 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=fail (domain: intel.com, ip: , mailfrom: zhichao.gao@intel.com) IronPort-SDR: c3lGtnuPD6s2RRyIc0womNzkL4wn1VCmVGF+z1RLdF5pgTsvKERWqtO6z+qdPEsXNUrLq/IEzr 26glsRAkbQbw== X-IronPort-AV: E=McAfee;i="6000,8403,9675"; a="127325755" X-IronPort-AV: E=Sophos;i="5.75,326,1589266800"; d="scan'208";a="127325755" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jul 2020 19:27:32 -0700 IronPort-SDR: 7gmD0zG+yYZV8GggQRJHLmwChrlQtybTEaWnvrv+BBhIxGY0Fx31+V1vO6Cwigu0shavKcLb/t u6LpdHchyU5A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,326,1589266800"; d="scan'208";a="483722341" Received: from fieedk001.ccr.corp.intel.com ([10.239.33.114]) by fmsmga005.fm.intel.com with ESMTP; 07 Jul 2020 19:27:30 -0700 From: "Gao, Zhichao" To: devel@edk2.groups.io Cc: Hao A Wu , Ray Ni , Laszlo Ersek Subject: [PATCH V2 1/3] MdeModulePkg/PartitionDxe: Correct the MBR last block value Date: Wed, 8 Jul 2020 10:27:20 +0800 Message-Id: <20200708022722.27024-2-zhichao.gao@intel.com> X-Mailer: git-send-email 2.21.0.windows.1 In-Reply-To: <20200708022722.27024-1-zhichao.gao@intel.com> References: <20200708022722.27024-1-zhichao.gao@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2823 The MBR last block value should be sector (512 bytes) numbers. Cc: Hao A Wu Cc: Ray Ni Cc: Laszlo Ersek Signed-off-by: Zhichao Gao --- MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c b/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c index dac451a144..aa0b6cadcc 100644 --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c @@ -137,12 +137,14 @@ PartitionInstallMbrChildHandles ( UINT32 MediaId; EFI_LBA LastBlock; EFI_PARTITION_INFO_PROTOCOL PartitionInfo; + UINT64 MediaSize; Found = EFI_NOT_FOUND; BlockSize = BlockIo->Media->BlockSize; MediaId = BlockIo->Media->MediaId; - LastBlock = BlockIo->Media->LastBlock; + MediaSize = MultU64x32 (BlockIo->Media->LastBlock + 1, BlockSize); + LastBlock = DivU64x32 (MediaSize, 512) - 1; // // Ensure the block size can hold the MBR -- 2.21.0.windows.1