diff --git a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c index 50b2f7bc0a..f176f9b52b 100644 --- a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c +++ b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c @@ -696,10 +696,6 @@ S3ResumeExecuteBootScript ( } if (FeaturePcdGet (PcdDxeIplSwitchToLongMode)) { - // - // Need reconstruct page table here, since we do not trust ACPINvs. - // - RestoreS3PageTables ((UINTN)AcpiS3Context->S3NvsPageTableAddress); AsmWriteCr3 ((UINTN)AcpiS3Context->S3NvsPageTableAddress); } @@ -906,6 +902,13 @@ S3RestoreConfig2 ( CpuDeadLoop (); } + if (FeaturePcdGet (PcdDxeIplSwitchToLongMode)) { + // + // Need reconstruct page table here, since we do not trust ACPINvs. + // + RestoreS3PageTables ((UINTN)AcpiS3Context->S3NvsPageTableAddress); + } + // // Attempt to use content from SMRAM first //