ClearMasks and OrMasks are not 8-byte aligned. But SetMem64 requires the input address is 8-byte aligned. If the input is not 8-byte aligned, assertion is hit. Use SetMem instead.
Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni <[email protected]> Cc: Eric Dong <[email protected]> --- UefiCpuPkg/Library/MtrrLib/MtrrLib.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UefiCpuPkg/Library/MtrrLib/MtrrLib.c b/UefiCpuPkg/Library/MtrrLib/MtrrLib.c index 200becdd4a..8e46e46cd4 100644 --- a/UefiCpuPkg/Library/MtrrLib/MtrrLib.c +++ b/UefiCpuPkg/Library/MtrrLib/MtrrLib.c @@ -2123,8 +2123,8 @@ MtrrLibSetBelow1MBMemoryAttribute ( // // (Value & ~0 | 0) still equals to (Value) // - SetMem64 (ClearMasks, sizeof (ClearMasks), 0); - SetMem64 (OrMasks, sizeof (OrMasks), 0); + SetMem (ClearMasks, sizeof (ClearMasks), 0); + SetMem (OrMasks, sizeof (OrMasks), 0); MsrIndex = (UINT32)-1; while ((BaseAddress < BASE_1MB) && (Length != 0)) { -- 2.12.2.windows.2 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

