UefiCpuPkg: Remove alignment check when calculate microcode size.
This patch removes the unnecessary alignment check on microcode patch
TotalSize introduced by commit d786a172
. The TotalSize has already been
checked with 1K alignment and MAX_ADDRESS in previous code as below:
if ( (UINTN)MicrocodeEntryPoint > (MAX_ADDRESS - TotalSize) ||
((UINTN)MicrocodeEntryPoint + TotalSize) > MicrocodeEnd ||
(DataSize & 0x3) != 0 ||
(TotalSize & (SIZE_1KB - 1)) != 0 ||
TotalSize < DataSize
) {
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Signed-off-by: Siyuan Fu <siyuan.fu@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
This commit is contained in:
parent
70911f1f4a
commit
08a475df10
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
Implementation of loading microcode on processors.
|
Implementation of loading microcode on processors.
|
||||||
|
|
||||||
Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2015 - 2020, Intel Corporation. All rights reserved.<BR>
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
@ -397,16 +397,7 @@ LoadMicrocodePatchWorker (
|
||||||
Patches[Index].Size
|
Patches[Index].Size
|
||||||
);
|
);
|
||||||
|
|
||||||
//
|
Walker += Patches[Index].Size;
|
||||||
// Zero-fill the padding area
|
|
||||||
// Please note that AlignedSize will be no less than Size
|
|
||||||
//
|
|
||||||
ZeroMem (
|
|
||||||
Walker + Patches[Index].Size,
|
|
||||||
Patches[Index].AlignedSize - Patches[Index].Size
|
|
||||||
);
|
|
||||||
|
|
||||||
Walker += Patches[Index].AlignedSize;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -578,14 +569,9 @@ LoadMicrocodePatch (
|
||||||
//
|
//
|
||||||
// Store the information of this microcode patch
|
// Store the information of this microcode patch
|
||||||
//
|
//
|
||||||
if (TotalSize > ALIGN_VALUE (TotalSize, SIZE_1KB) ||
|
PatchInfoBuffer[PatchCount - 1].Address = (UINTN) MicrocodeEntryPoint;
|
||||||
ALIGN_VALUE (TotalSize, SIZE_1KB) > MAX_UINTN - TotalLoadSize) {
|
PatchInfoBuffer[PatchCount - 1].Size = TotalSize;
|
||||||
goto OnExit;
|
TotalLoadSize += TotalSize;
|
||||||
}
|
|
||||||
PatchInfoBuffer[PatchCount - 1].Address = (UINTN) MicrocodeEntryPoint;
|
|
||||||
PatchInfoBuffer[PatchCount - 1].Size = TotalSize;
|
|
||||||
PatchInfoBuffer[PatchCount - 1].AlignedSize = ALIGN_VALUE (TotalSize, SIZE_1KB);
|
|
||||||
TotalLoadSize += PatchInfoBuffer[PatchCount - 1].AlignedSize;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
Common header file for MP Initialize Library.
|
Common header file for MP Initialize Library.
|
||||||
|
|
||||||
Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2016 - 2020, Intel Corporation. All rights reserved.<BR>
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
@ -54,7 +54,6 @@
|
||||||
typedef struct {
|
typedef struct {
|
||||||
UINTN Address;
|
UINTN Address;
|
||||||
UINTN Size;
|
UINTN Size;
|
||||||
UINTN AlignedSize;
|
|
||||||
} MICROCODE_PATCH_INFO;
|
} MICROCODE_PATCH_INFO;
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in New Issue