diff options
author | Jian J Wang <jian.j.wang@intel.com> | 2018-01-15 10:25:40 +0800 |
---|---|---|
committer | Ruiyu Ni <ruiyu.ni@intel.com> | 2018-01-18 17:03:25 +0800 |
commit | 6a3094c996da6f0d028fb42d09bca90dc2c7f653 (patch) | |
tree | 5d8d40f2d47cb223c44c9feb6feef533cc81f272 /MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h | |
parent | 94c0129d244f91fa0a7b122414872da49a35f853 (diff) | |
download | edk2-6a3094c996da6f0d028fb42d09bca90dc2c7f653.tar.gz edk2-6a3094c996da6f0d028fb42d09bca90dc2c7f653.tar.bz2 edk2-6a3094c996da6f0d028fb42d09bca90dc2c7f653.zip |
MdeModulePkg/BootScriptExecutorDxe: remove NX attr for FfsBuffer
If PcdDxeNxMemoryProtectionPolicy is set to enable protection for memory
of EfiReservedMemoryType, the BIOS will hang at a page fault exception
triggered by BootScriptExecutorDxe.
The root cause is that this driver will allocate memory of
EfiReservedMemoryType and relocate itself into this new memory. Since
EfiReservedMemoryType of memory is marked non-executable, re-start this
driver after relocation will cause exception. The fix is removing the NX
attribute after memory allocation.
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
Diffstat (limited to 'MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h')
-rw-r--r-- | MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h index 75327569d7..94deae87e6 100644 --- a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h +++ b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h @@ -38,6 +38,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #include <Library/LockBoxLib.h>
#include <Library/CpuExceptionHandlerLib.h>
#include <Library/DevicePathLib.h>
+#include <Library/DxeServicesTableLib.h>
#include <Guid/AcpiS3Context.h>
#include <Guid/BootScriptExecutorVariable.h>
|