public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Sheng Wei" <w.sheng@intel.com>
To: gaoliming <gaoliming@byosoft.com.cn>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>,
	"Liu, Zhiguang" <zhiguang.liu@intel.com>
Cc: "Yao, Jiewen" <jiewen.yao@intel.com>, "Ni, Ray" <ray.ni@intel.com>
Subject: Re: [edk2-devel] [PATCH v5 1/2] MdePkg/Include: Add CET instructions to Nasm.inc
Date: Tue, 2 Mar 2021 04:53:16 +0000	[thread overview]
Message-ID: <MN2PR11MB447976C3F60E6E7506BD2A3DE1999@MN2PR11MB4479.namprd11.prod.outlook.com> (raw)
In-Reply-To: <008501d70f05$5f2a4da0$1d7ee8e0$@byosoft.com.cn>

[-- Attachment #1: Type: text/plain, Size: 15339 bytes --]

Hi Liming,
I just checked the PR https://github.com/tianocore/edk2/pull/1469.
It reports an error when run PatchCheck.py.
The error message is "Line ending ('\n') is not CRLF".
I think it is caused by the end of line is not '\r\n' in the .patch file.
I just update the patch 3/3, just replace '\n' to '\r\n'
Thank you
BR
Sheng Wei


> -----Original Message-----
> From: gaoliming <gaoliming@byosoft.com.cn>
> Sent: 2021年3月2日 9:43
> To: devel@edk2.groups.io; gaoliming@byosoft.com.cn; Sheng, W
> <w.sheng@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>;
> Liu, Zhiguang <zhiguang.liu@intel.com>
> Cc: Yao, Jiewen <jiewen.yao@intel.com>; Ni, Ray <ray.ni@intel.com>
> Subject: 回复: [edk2-devel] [PATCH v5 1/2] MdePkg/Include: Add CET
> instructions to Nasm.inc
> 
> I have created PR https://github.com/tianocore/edk2/pull/1469 for this
> patch set.
> 
> Thanks
> Liming
> > -----邮件原件-----
> > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 gaoliming
> > 发送时间: 2021年3月1日 16:07
> > 收件人: devel@edk2.groups.io; w.sheng@intel.com; 'Kinney, Michael D'
> > <michael.d.kinney@intel.com>; 'Liu, Zhiguang' <zhiguang.liu@intel.com>
> > 抄送: 'Yao, Jiewen' <jiewen.yao@intel.com>; 'Ni, Ray' <ray.ni@intel.com>
> > 主题: 回复: [edk2-devel] [PATCH v5 1/2] MdePkg/Include: Add CET
> > instructions to Nasm.inc
> >
> > Sheng Wei:
> >   I have sent the mail (https://edk2.groups.io/g/devel/message/72225)
> > to collect the feedback. If no other comment, I will help merge this
> > patch set tomorrow.
> >
> > Thanks
> > Liming
> > > -----邮件原件-----
> > > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Sheng Wei
> > > 发送时间: 2021年3月1日 13:20
> > > 收件人: gaoliming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io;
> > > Kinney, Michael D <michael.d.kinney@intel.com>; Liu, Zhiguang
> > > <zhiguang.liu@intel.com>
> > > 抄送: Yao, Jiewen <jiewen.yao@intel.com>; Ni, Ray <ray.ni@intel.com>
> > > 主题: Re: [edk2-devel] [PATCH v5 1/2] MdePkg/Include: Add CET
> > instructions
> > > to Nasm.inc
> > >
> > > Hi Liming,
> > > I have updated the patch to V6 at last Friday.
> > > All the patches have been given Review-by.
> > > Patch v6 1/3 is for MdePkg.
> > > Patch v6 2/3 and 3/3 are for UefiCpuPkg.
> > > Patch v6 2/3 depends on 1/3
> > > Could you help to merge these patches ?
> > > Thank you.
> > > BR
> > > Sheng Wei
> > >
> > > > -----Original Message-----
> > > > From: gaoliming <gaoliming@byosoft.com.cn>
> > > > Sent: 2021年2月25日 21:45
> > > > To: devel@edk2.groups.io; Sheng, W <w.sheng@intel.com>; Kinney,
> > > Michael
> > > > D <michael.d.kinney@intel.com>; Liu, Zhiguang
> > > > <zhiguang.liu@intel.com>
> > > > Cc: Yao, Jiewen <jiewen.yao@intel.com>
> > > > Subject: 回复: [edk2-devel] [PATCH v5 1/2] MdePkg/Include: Add CET
> > > > instructions to Nasm.inc
> > > >
> > > > Wei:
> > > >   This is the patch set. They will be merged together, because one
> > > > patch update may impact another one. We don't want to roll back
> > > > previous
> > > commit.
> > > >
> > > >   Besides, can you give the reason to merge this patch for this
> > > > stable tag 202102? What impact will be caused if this patch is
> > > > deferred to next stable
> > > tag?
> > > >
> > > > Thanks
> > > > Liming
> > > > > -----邮件原件-----
> > > > > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Sheng
> > > Wei
> > > > > 发送时间: 2021年2月25日 13:48
> > > > > 收件人: devel@edk2.groups.io; gaoliming@byosoft.com.cn; Kinney,
> > > > Michael D
> > > > > <michael.d.kinney@intel.com>; Liu, Zhiguang
> > > > > <zhiguang.liu@intel.com>
> > > > > 抄送: Yao, Jiewen <jiewen.yao@intel.com>
> > > > > 主题: Re: [edk2-devel] [PATCH v5 1/2] MdePkg/Include: Add CET
> > > > > instructions to Nasm.inc
> > > > >
> > > > > Hi Liming,
> > > > > I would like to merge this fix to catch stable tag 202102.
> > > > > This bug fix includes 2 patches.
> > > > > One [PATCH v5 1/2] is for MdePkg. It only used to add DB format
> > > > > CET instructions to nasm.inc.
> > > > > Another one [PATCH v5 2/2] is for UefiCpuPkg. It is the bug fix
> > > > > itself. The patch will use the DB define in nasm.inc Could you
> > > > > help to merge the one first ?
> > > > > I attached the patch file.
> > > > > Thank you
> > > > > BR
> > > > > Sheng Wei
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
> > > > > > gaoliming
> > > > > > Sent: 2021年2月25日 9:53
> > > > > > To: Kinney, Michael D <michael.d.kinney@intel.com>;
> > > > > devel@edk2.groups.io;
> > > > > > Liu, Zhiguang <zhiguang.liu@intel.com>; Sheng, W
> > > <w.sheng@intel.com>
> > > > > > Cc: Yao, Jiewen <jiewen.yao@intel.com>
> > > > > > Subject: 回复: [edk2-devel] [PATCH v5 1/2] MdePkg/Include: Add
> > > > > > CET instructions to Nasm.inc
> > > > > >
> > > > > > Mike:
> > > > > >   We agree to increase nasm compiler version after the stable tag.
> > > > > > If this
> > > > > fix
> > > > > > wants to catch stable tag 202102, it has to use hard code DB
> > > > > > in
> > > Nasm.inc.
> > > > > >
> > > > > > Sheng:
> > > > > >   If this fix doesn't need to catch stable tag 202102, you can
> > > > > > directly send
> > > > > the
> > > > > > patch with nasm command in Nasm.inc.
> > > > > >
> > > > > > Thanks
> > > > > > Liming
> > > > > > > -----邮件原件-----
> > > > > > > 发件人: Kinney, Michael D <michael.d.kinney@intel.com>
> > > > > > > 发送时间: 2021年2月23日 10:22
> > > > > > > 收件人: gaoliming <gaoliming@byosoft.com.cn>;
> > > > devel@edk2.groups.io;
> > > > > > Liu,
> > > > > > > Zhiguang <zhiguang.liu@intel.com>; Sheng, W
> > <w.sheng@intel.com>;
> > > > > > > Kinney, Michael D <michael.d.kinney@intel.com>
> > > > > > > 抄送: Yao, Jiewen <jiewen.yao@intel.com>
> > > > > > > 主题: RE: [edk2-devel] [PATCH v5 1/2] MdePkg/Include: Add CET
> > > > > > > instructions to Nasm.inc
> > > > > > >
> > > > > > > Liming,
> > > > > > >
> > > > > > > I thought we decided against adding macros and instead want
> > > > > > > to use newer NASM version that supports these instructions.
> > > > > > >
> > > > > > > Mike
> > > > > > >
> > > > > > > > -----Original Message-----
> > > > > > > > From: gaoliming <gaoliming@byosoft.com.cn>
> > > > > > > > Sent: Monday, February 22, 2021 5:01 PM
> > > > > > > > To: devel@edk2.groups.io; Liu, Zhiguang
> > > > > > > > <zhiguang.liu@intel.com>; Sheng,
> > > > > > > W <w.sheng@intel.com>
> > > > > > > > Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Yao,
> > > > > > > > Jiewen
> > > > > > > <jiewen.yao@intel.com>
> > > > > > > > Subject: 回复: [edk2-devel] [PATCH v5 1/2] MdePkg/Include:
> > > > > > > > Add
> > > CET
> > > > > > > instructions to Nasm.inc
> > > > > > > >
> > > > > > > > Wei:
> > > > > > > >   This is a patch set. If all patches pass the review by
> > > > > > > > the package
> > > > > > > maintainer, I will help merge it.
> > > > > > > >
> > > > > > > >   Seemly, this is a bug fix. So, it can still be merged in
> > > > > > > > 202102 stable tag
> > > > > > > soft feature freeze phase.
> > > > > > > >
> > > > > > > > Thanks
> > > > > > > > Liming
> > > > > > > > > -----邮件原件-----
> > > > > > > > > 发件人: bounce+27952+71908+4905953+8761045@groups.io
> > > > > > > > > <bounce+27952+71908+4905953+8761045@groups.io> 代表
> > > > > Zhiguang
> > > > > > > Liu
> > > > > > > > > 发送时间: 2021年2月22日 10:23
> > > > > > > > > 收件人: Sheng, W <w.sheng@intel.com>; gaoliming
> > > > > > > > > <gaoliming@byosoft.com.cn>; devel@edk2.groups.io
> > > > > > > > > 抄送: Kinney, Michael D <michael.d.kinney@intel.com>; Yao,
> > > > > > > > > Jiewen <jiewen.yao@intel.com>
> > > > > > > > > 主题: Re: [edk2-devel] [PATCH v5 1/2] MdePkg/Include: Add
> > CET
> > > > > > > instructions
> > > > > > > > > to Nasm.inc
> > > > > > > > >
> > > > > > > > > Hi Sheng Wei,
> > > > > > > > > I don't have the access to push patch.
> > > > > > > > >
> > > > > > > > > Hi Liming,
> > > > > > > > > Can you help merge this patch? Thanks
> > > > > > > > >
> > > > > > > > > Thanks
> > > > > > > > > Zhiguang
> > > > > > > > >
> > > > > > > > > > -----Original Message-----
> > > > > > > > > > From: Sheng, W <w.sheng@intel.com>
> > > > > > > > > > Sent: Monday, February 22, 2021 10:12 AM
> > > > > > > > > > To: gaoliming <gaoliming@byosoft.com.cn>;
> > > > > > > > > > devel@edk2.groups.io; Liu, Zhiguang
> > > > > > > > > > <zhiguang.liu@intel.com>
> > > > > > > > > > Cc: Kinney, Michael D <michael.d.kinney@intel.com>;
> > > > > > > > > > Yao, Jiewen <jiewen.yao@intel.com>
> > > > > > > > > > Subject: RE: [edk2-devel] [PATCH v5 1/2]
> > > > > > > > > > MdePkg/Include: Add CET instructions to Nasm.inc
> > > > > > > > > >
> > > > > > > > > > Hi Zhiguang,
> > > > > > > > > > Could you help to merge the patch to the master branch ?
> > > > > > > > > >
> > > > > > > > > > @gaoliming
> > > > > > > > > > Thank you for giving the review-by.
> > > > > > > > > > BR
> > > > > > > > > > Sheng Wei
> > > > > > > > > >
> > > > > > > > > > > -----Original Message-----
> > > > > > > > > > > From: gaoliming <gaoliming@byosoft.com.cn>
> > > > > > > > > > > Sent: 2021年2月20日 13:35
> > > > > > > > > > > To: devel@edk2.groups.io; Sheng, W
> > > > > > > > > > > <w.sheng@intel.com>
> > > > > > > > > > > Cc: Kinney, Michael D <michael.d.kinney@intel.com>;
> > > > > > > > > > > Liu, Zhiguang <zhiguang.liu@intel.com>; Yao, Jiewen
> > > > > > > > > > > <jiewen.yao@intel.com>
> > > > > > > > > > > Subject: 回复: [edk2-devel] [PATCH v5 1/2]
> MdePkg/Include:
> > > > > > > > > > > Add CET instructions to Nasm.inc
> > > > > > > > > > >
> > > > > > > > > > > Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
> > > > > > > > > > >
> > > > > > > > > > > > -----邮件原件-----
> > > > > > > > > > > > 发件人:
> > > bounce+27952+71865+4905953+8761045@groups.io
> > > > > > > > > > > > <bounce+27952+71865+4905953+8761045@groups.io>
> > 代
> > > 表
> > > > > > > Sheng
> > > > > > > > > Wei
> > > > > > > > > > > > 发送时间: 2021年2月20日 11:15
> > > > > > > > > > > > 收件人: devel@edk2.groups.io
> > > > > > > > > > > > 抄送: Michael D Kinney <michael.d.kinney@intel.com>;
> > > > > > > > > > > > Liming Gao <gaoliming@byosoft.com.cn>; Zhiguang
> > > > > > > > > > > > Liu
> > > > > > > <zhiguang.liu@intel.com>;
> > > > > > > > > > > > Jiewen Yao <jiewen.yao@intel.com>
> > > > > > > > > > > > 主题: [edk2-devel] [PATCH v5 1/2] MdePkg/Include:
> > > > > > > > > > > > Add
> > > CET
> > > > > > > > > instructions
> > > > > > > > > > > > to Nasm.inc
> > > > > > > > > > > >
> > > > > > > > > > > > This is to add instruction SAVEPREVSSP, CLRSSBSY
> > > > > > > > > > > > and
> > > > > > > RSTORSSP_RAX in
> > > > > > > > > > > > Nasm.
> > > > > > > > > > > > The open CI is using NASM 2.14.02.
> > > > > > > > > > > > CET instructions are supported since NASM 2.15.01.
> > > > > > > > > > > >
> > > > > > > > > > > > DB-encoded CET instructions need to be removed
> > > > > > > > > > > > after open CI
> > > > > > > update
> > > > > > > > > > > > to NASM 2.15.01.
> > > > > > > > > > > > The BZ ticket is
> > > > > > > https://bugzilla.tianocore.org/show_bug.cgi?id=3227 .
> > > > > > > > > > > >
> > > > > > > > > > > > REF:
> > > > > > > > > > > > https://bugzilla.tianocore.org/show_bug.cgi?id=319
> > > > > > > > > > > > 2
> > > > > > > > > > > >
> > > > > > > > > > > > Signed-off-by: Sheng Wei <w.sheng@intel.com>
> > > > > > > > > > > > Cc: Michael D Kinney <michael.d.kinney@intel.com>
> > > > > > > > > > > > Cc: Liming Gao <gaoliming@byosoft.com.cn>
> > > > > > > > > > > > Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> > > > > > > > > > > > Cc: Jiewen Yao <jiewen.yao@intel.com>
> > > > > > > > > > > > ---
> > > > > > > > > > > >  MdePkg/Include/Ia32/Nasm.inc | 12 ++++++++++++
> > > > > > > > > > > > MdePkg/Include/X64/Nasm.inc  | 12 ++++++++++++
> > > > > > > > > > > >  2 files changed, 24 insertions(+)
> > > > > > > > > > > >
> > > > > > > > > > > > diff --git a/MdePkg/Include/Ia32/Nasm.inc
> > > > > > > > > > > > b/MdePkg/Include/Ia32/Nasm.inc index
> > > > > 31ce861f1e..fa42f9d3e9
> > > > > > > > > 100644
> > > > > > > > > > > > --- a/MdePkg/Include/Ia32/Nasm.inc
> > > > > > > > > > > > +++ b/MdePkg/Include/Ia32/Nasm.inc
> > > > > > > > > > > > @@ -9,6 +9,18 @@
> > > > > > > > > > > >  ;
> > > > > > > > > > > >
> > > > > > > > > > > ;---------------------------------------------------
> > > > > > > > > > > ------
> > > > > > > > > > > ----
> > > > > > > > > > > --------
> > > > > > > > > > > ------
> > > > > > > > > > > ---
> > > > > > > > > > > >
> > > > > > > > > > > > +%macro SAVEPREVSSP     0
> > > > > > > > > > > > +    DB 0xF3, 0x0F, 0x01, 0xEA %endmacro
> > > > > > > > > > > > +
> > > > > > > > > > > > +%macro CLRSSBSY_EAX    0
> > > > > > > > > > > > +    DB 0x67, 0xF3, 0x0F, 0xAE, 0x30 %endmacro
> > > > > > > > > > > > +
> > > > > > > > > > > > +%macro RSTORSSP_EAX    0
> > > > > > > > > > > > +    DB 0x67, 0xF3, 0x0F, 0x01, 0x28 %endmacro
> > > > > > > > > > > > +
> > > > > > > > > > > >  %macro SETSSBSY        0
> > > > > > > > > > > >      DB 0xF3, 0x0F, 0x01, 0xE8  %endmacro diff
> > > > > > > > > > > > --git a/MdePkg/Include/X64/Nasm.inc
> > > > > > > > > > > b/MdePkg/Include/X64/Nasm.inc
> > > > > > > > > > > > index 42412735ea..e57a803c81 100644
> > > > > > > > > > > > --- a/MdePkg/Include/X64/Nasm.inc
> > > > > > > > > > > > +++ b/MdePkg/Include/X64/Nasm.inc
> > > > > > > > > > > > @@ -9,6 +9,18 @@
> > > > > > > > > > > >  ;
> > > > > > > > > > > >
> > > > > > > > > > > ;---------------------------------------------------
> > > > > > > > > > > ------
> > > > > > > > > > > ----
> > > > > > > > > > > --------
> > > > > > > > > > > ------
> > > > > > > > > > > ---
> > > > > > > > > > > >
> > > > > > > > > > > > +%macro SAVEPREVSSP     0
> > > > > > > > > > > > +    DB 0xF3, 0x0F, 0x01, 0xEA %endmacro
> > > > > > > > > > > > +
> > > > > > > > > > > > +%macro CLRSSBSY_RAX    0
> > > > > > > > > > > > +    DB 0xF3, 0x0F, 0xAE, 0x30 %endmacro
> > > > > > > > > > > > +
> > > > > > > > > > > > +%macro RSTORSSP_RAX    0
> > > > > > > > > > > > +    DB 0xF3, 0x0F, 0x01, 0x28 %endmacro
> > > > > > > > > > > > +
> > > > > > > > > > > >  %macro SETSSBSY        0
> > > > > > > > > > > >      DB 0xF3, 0x0F, 0x01, 0xE8  %endmacro
> > > > > > > > > > > > --
> > > > > > > > > > > > 2.16.2.windows.1
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> >
> >
> >
> > 
> >
> 
> 


[-- Attachment #2: 0003-UefiCpuPkg-PiSmmCpuDxeSmm-Fix-SMM-stack-offset-is-no.patch --]
[-- Type: application/octet-stream, Size: 4731 bytes --]

From 8362f05765b4652bb054f235cbe4a92cdad44ca6 Mon Sep 17 00:00:00 2001
From: Sheng Wei <w.sheng@intel.com>
Date: Fri, 26 Feb 2021 12:00:34 +0800
Subject: [PATCH v6 3/3] UefiCpuPkg/PiSmmCpuDxeSmm: Fix SMM stack offset is not
 correct

In function InitGdt(), SmiPFHandler() and Gen4GPageTable(), it uses
 CpuIndex * mSmmStackSize to get the SMM stack address offset for
 multi processor. It misses the SMM Shadow Stack Size. Each processor
 will use mSmmStackSize + mSmmShadowStackSize in the memory.
It should use CpuIndex * (mSmmStackSize + mSmmShadowStackSize) to get
 this SMM stack address offset. If mSmmShadowStackSize > 0 and multi
 processor enabled, it will get the wrong offset value.
CET shadow stack feature will set the value of mSmmShadowStackSize.

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3237

Signed-off-by: Sheng Wei <w.sheng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Roger Feng <roger.feng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
---
 UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c        | 6 ++++--
 UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c      | 4 +++-
 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmFuncsArch.c | 2 +-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c
index 4bcd217917..6227b2428a 100644
--- a/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c
+++ b/UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c
@@ -23,6 +23,8 @@ SPIN_LOCK                                   *mPFLock = NULL;
 SMM_CPU_SYNC_MODE                           mCpuSmmSyncMode;
 BOOLEAN                                     mMachineCheckSupported = FALSE;
 
+extern UINTN mSmmShadowStackSize;
+
 /**
   Performs an atomic compare exchange operation to get semaphore.
   The compare exchange operation must be performed using
@@ -920,7 +922,7 @@ Gen4GPageTable (
     // Add two more pages for known good stack and stack guard page,
     // then find the lower 2MB aligned address.
     //
-    High2MBoundary = (mSmmStackArrayEnd - mSmmStackSize + EFI_PAGE_SIZE * 2) & ~(SIZE_2MB-1);
+    High2MBoundary = (mSmmStackArrayEnd - mSmmStackSize - mSmmShadowStackSize + EFI_PAGE_SIZE * 2) & ~(SIZE_2MB-1);
     PagesNeeded = ((High2MBoundary - Low2MBoundary) / SIZE_2MB) + 1;
   }
   //
@@ -971,7 +973,7 @@ Gen4GPageTable (
           // Mark the guard page as non-present
           //
           Pte[Index] = PageAddress | mAddressEncMask;
-          GuardPage += mSmmStackSize;
+          GuardPage += (mSmmStackSize + mSmmShadowStackSize);
           if (GuardPage > mSmmStackArrayEnd) {
             GuardPage = 0;
           }
diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c
index cdc1fcefc5..07e7ea70de 100644
--- a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c
+++ b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c
@@ -13,6 +13,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #define PAGE_TABLE_PAGES            8
 #define ACC_MAX_BIT                 BIT3
 
+extern UINTN mSmmShadowStackSize;
+
 LIST_ENTRY                          mPagePool = INITIALIZE_LIST_HEAD_VARIABLE (mPagePool);
 BOOLEAN                             m1GPageTableSupport = FALSE;
 BOOLEAN                             mCpuSmmRestrictedMemoryAccess;
@@ -1037,7 +1039,7 @@ SmiPFHandler (
       (PFAddress < (mCpuHotPlugData.SmrrBase + mCpuHotPlugData.SmrrSize))) {
     DumpCpuContext (InterruptType, SystemContext);
     CpuIndex = GetCpuIndex ();
-    GuardPageAddress = (mSmmStackArrayBase + EFI_PAGE_SIZE + CpuIndex * mSmmStackSize);
+    GuardPageAddress = (mSmmStackArrayBase + EFI_PAGE_SIZE + CpuIndex * (mSmmStackSize + mSmmShadowStackSize));
     if ((FeaturePcdGet (PcdCpuSmmStackGuard)) &&
         (PFAddress >= GuardPageAddress) &&
         (PFAddress < (GuardPageAddress + EFI_PAGE_SIZE))) {
diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmFuncsArch.c b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmFuncsArch.c
index 7ef3b1d488..661c1ba294 100644
--- a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmFuncsArch.c
+++ b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmFuncsArch.c
@@ -93,7 +93,7 @@ InitGdt (
       //
       // Setup top of known good stack as IST1 for each processor.
       //
-      *(UINTN *)(TssBase + TSS_X64_IST1_OFFSET) = (mSmmStackArrayBase + EFI_PAGE_SIZE + Index * mSmmStackSize);
+      *(UINTN *)(TssBase + TSS_X64_IST1_OFFSET) = (mSmmStackArrayBase + EFI_PAGE_SIZE + Index * (mSmmStackSize + mSmmShadowStackSize));
     }
   }
 
-- 
2.16.2.windows.1


  reply	other threads:[~2021-03-02  4:53 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-20  3:14 [PATCH v5 0/2] Fix CET shadow stack token busy bit clear issue Sheng Wei
2021-02-20  3:15 ` [PATCH v5 1/2] MdePkg/Include: Add CET instructions to Nasm.inc Sheng Wei
2021-02-20  5:35   ` 回复: [edk2-devel] " gaoliming
2021-02-22  2:12     ` Sheng Wei
2021-02-22  2:22       ` Zhiguang Liu
2021-02-23  1:01         ` 回复: " gaoliming
2021-02-23  2:21           ` Michael D Kinney
2021-02-25  1:53             ` 回复: " gaoliming
2021-02-25  5:48               ` Sheng Wei
2021-02-25 13:44                 ` 回复: " gaoliming
2021-02-26  1:45                   ` Sheng Wei
2021-03-01  5:20                   ` Sheng Wei
2021-03-01  8:07                     ` 回复: " gaoliming
     [not found]                     ` <16682970DB33FFC1.25260@groups.io>
2021-03-02  1:42                       ` gaoliming
2021-03-02  4:53                         ` Sheng Wei [this message]
2021-02-26  1:47   ` Yao, Jiewen
2021-02-20  3:15 ` [PATCH v5 2/2] UefiCpuPkg/CpuExceptionHandlerLib: Clear CET shadow stack token busy bit Sheng Wei
2021-02-26  1:47   ` [edk2-devel] " Yao, Jiewen
     [not found] ` <1665564E9CEC9D4A.5517@groups.io>
2021-02-22  2:15   ` Sheng Wei
     [not found]   ` <1665F02F00621E09.19946@groups.io>
2021-02-23  7:51     ` Sheng Wei
     [not found]     ` <166651222AB8BC36.9724@groups.io>
2021-02-25  5:57       ` Sheng Wei
2021-02-26  1:48         ` Yao, Jiewen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=MN2PR11MB447976C3F60E6E7506BD2A3DE1999@MN2PR11MB4479.namprd11.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox