summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJian J Wang <jian.j.wang@intel.com>2018-02-27 09:04:23 +0800
committerRuiyu Ni <ruiyu.ni@intel.com>2018-02-28 15:30:26 +0800
commitd429d00f97eace52c94af73088f1b61413405bbf (patch)
tree2e044123a48634a75bc62acf00780b16c1cefddb
parentde707b08668bb86c6d873239a18e5de652f13ea6 (diff)
downloadedk2-d429d00f97eace52c94af73088f1b61413405bbf.zip
edk2-d429d00f97eace52c94af73088f1b61413405bbf.tar.gz
edk2-d429d00f97eace52c94af73088f1b61413405bbf.tar.bz2
UefiCpuPkg/CpuExceptionHandlerLib: fix incorrect init of exception stack
This issue is introduced at following commit, which tried to add stack switch support on behalf of Stack Guard feature. 0ff5aa9cae1ea276668fa4398d047aa9fda3c2c7 The field KnownGoodStackTop in CPU_EXCEPTION_INIT_DATA is initialized to the start address of array mNewStack. This is wrong. It must be the end of mNewStack. This patch fixes this mistake. Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Eric Dong <eric.dong@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jian J Wang <jian.j.wang@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c b/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c
index 6d1b54d..2a09078 100644
--- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c
+++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c
@@ -270,7 +270,7 @@ InitializeCpuExceptionHandlersEx (
AsmReadGdtr (&Gdtr);
EssData.X64.Revision = CPU_EXCEPTION_INIT_DATA_REV;
- EssData.X64.KnownGoodStackTop = (UINTN)mNewStack;
+ EssData.X64.KnownGoodStackTop = (UINTN)mNewStack + sizeof (mNewStack);
EssData.X64.KnownGoodStackSize = CPU_KNOWN_GOOD_STACK_SIZE;
EssData.X64.StackSwitchExceptions = CPU_STACK_SWITCH_EXCEPTION_LIST;
EssData.X64.StackSwitchExceptionNumber = CPU_STACK_SWITCH_EXCEPTION_NUMBER;