Message ID | 1473405686-5465-1-git-send-email-ard.biesheuvel@linaro.org |
---|---|
State | Accepted |
Commit | 35071e15748fa54809e485935b631dbe58c1f078 |
Headers | show |
On Fri, Sep 09, 2016 at 08:21:26AM +0100, Ard Biesheuvel wrote: > When switching to the DXE phase stack, set the frame pointer to zero so > that code walking the stack frame will not try to access stack frames\ Trailing '\'. > belonging to the old stack. Do you mean that code will check for zero and stop processing, or that it will be accessing rubbish instead of parsing a valid-looking frame? Either is an improvement, but if it is the latter I would prefer it more explicitly stated. You can fix up on commit: Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > --- > MdePkg/Library/BaseLib/AArch64/SwitchStack.S | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/MdePkg/Library/BaseLib/AArch64/SwitchStack.S b/MdePkg/Library/BaseLib/AArch64/SwitchStack.S > index 2bce9c998f4f..c3ac8d7e4dfe 100644 > --- a/MdePkg/Library/BaseLib/AArch64/SwitchStack.S > +++ b/MdePkg/Library/BaseLib/AArch64/SwitchStack.S > @@ -40,6 +40,7 @@ InternalSwitchStackAsm ( > ); > **/ > ASM_PFX(InternalSwitchStackAsm): > + mov x29, #0 > mov x30, x0 > mov sp, x3 > mov x0, x1 > -- > 2.7.4 > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On 9 September 2016 at 12:18, Leif Lindholm <leif.lindholm@linaro.org> wrote: > On Fri, Sep 09, 2016 at 08:21:26AM +0100, Ard Biesheuvel wrote: >> When switching to the DXE phase stack, set the frame pointer to zero so >> that code walking the stack frame will not try to access stack frames\ > > Trailing '\'. > >> belonging to the old stack. > > Do you mean that code will check for zero and stop processing, or that > it will be accessing rubbish instead of parsing a valid-looking frame? > I don't understand this question. If it is zero, it will stop processing. If it is not zero, it will proceed, and potentially traverse stack frames in memory that is now owned by someone else. > Either is an improvement, but if it is the latter I would prefer it > more explicitly stated. > > You can fix up on commit: > Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> > >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> >> --- >> MdePkg/Library/BaseLib/AArch64/SwitchStack.S | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/MdePkg/Library/BaseLib/AArch64/SwitchStack.S b/MdePkg/Library/BaseLib/AArch64/SwitchStack.S >> index 2bce9c998f4f..c3ac8d7e4dfe 100644 >> --- a/MdePkg/Library/BaseLib/AArch64/SwitchStack.S >> +++ b/MdePkg/Library/BaseLib/AArch64/SwitchStack.S >> @@ -40,6 +40,7 @@ InternalSwitchStackAsm ( >> ); >> **/ >> ASM_PFX(InternalSwitchStackAsm): >> + mov x29, #0 >> mov x30, x0 >> mov sp, x3 >> mov x0, x1 >> -- >> 2.7.4 >> _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On Fri, Sep 09, 2016 at 01:03:59PM +0100, Ard Biesheuvel wrote: > On 9 September 2016 at 12:18, Leif Lindholm <leif.lindholm@linaro.org> wrote: > > On Fri, Sep 09, 2016 at 08:21:26AM +0100, Ard Biesheuvel wrote: > >> When switching to the DXE phase stack, set the frame pointer to zero so > >> that code walking the stack frame will not try to access stack frames\ > > > > Trailing '\'. > > > >> belonging to the old stack. > > > > Do you mean that code will check for zero and stop processing, or that > > it will be accessing rubbish instead of parsing a valid-looking frame? > > I don't understand this question. If it is zero, it will stop > processing. If it is not zero, it will proceed, and potentially > traverse stack frames in memory that is now owned by someone else. Which was exactly what I was asking :) So no need to change (but drop the '\'). / Leif _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
diff --git a/MdePkg/Library/BaseLib/AArch64/SwitchStack.S b/MdePkg/Library/BaseLib/AArch64/SwitchStack.S index 2bce9c998f4f..c3ac8d7e4dfe 100644 --- a/MdePkg/Library/BaseLib/AArch64/SwitchStack.S +++ b/MdePkg/Library/BaseLib/AArch64/SwitchStack.S @@ -40,6 +40,7 @@ InternalSwitchStackAsm ( ); **/ ASM_PFX(InternalSwitchStackAsm): + mov x29, #0 mov x30, x0 mov sp, x3 mov x0, x1
When switching to the DXE phase stack, set the frame pointer to zero so that code walking the stack frame will not try to access stack frames\ belonging to the old stack. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> --- MdePkg/Library/BaseLib/AArch64/SwitchStack.S | 1 + 1 file changed, 1 insertion(+) -- 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel