From: ard.biesheuvel@linaro.org (Ard Biesheuvel)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/7] Ensure stack is aligned for kernel entries
Date: Thu, 22 Nov 2018 13:11:43 +0100 [thread overview]
Message-ID: <CAKv+Gu9o_2-u6MJf1QLLSbdWfPvq0vqr61K0Nawr-Nob6hsepg@mail.gmail.com> (raw)
In-Reply-To: <bf872be5-4a56-017b-83b6-544f8d8f528e@arm.com>
On Thu, 22 Nov 2018 at 12:49, Julien Thierry <julien.thierry@arm.com> wrote:
>
> Hi,
>
> On 26/09/18 14:56, Julien Thierry wrote:
> > Hi,
> >
> > Having SCTLR_ELx.SA enabled requires the SP to be 16-bytes aligned before
> > using it to access memory. When taking an exception, it is possible that
> > the context during which the exception occured had SP mis-aligned. The
> > entry code needs to make sure that the stack is aligned before using it to
> > save the context.
> >
>
> So, as discussed in this thread:
> https://www.spinics.net/lists/arm-kernel/msg688342.html
>
> We might have the compiler provide the guarantee that SP is kept at
> multiples of 16-bytes throughout C functions. If this is accepted, it
> avoids the complexity of this series.
>
Yes, but we still want the build time sizeof(pt_regs) check and
perhaps other pieces of this series.
> There is just one case remaining, which is less important as it is
> mostly a debug concern. If we take an SP alignment fault from EL1 (due
> to bad implementation) we take recursive exceptions:
>
> - Without CONFIG_VMAP_STACK, kernel just freezes always taking SP
> alignment faults
> - With CONFIG_VMAP_STACK after taking a number of exceptions, we
> overflow the stack and the kernel switches to the overflow stack where
> it finally manages to display a kernel panic message
>
> So the question is, do we care about doing something for the above case?
>
So in the latter case, it is obvious from the debug output that the
stack pointer was misaligned? I'd expect so, given that each
recursively taken exception has the same cause, and so it would be
clear what happened.
So I'm leaning towards just relying on that, given that
CONFIG_VMAP_STACK is the default, although it is unfortunate that
KASAN still disables it.
next prev parent reply other threads:[~2018-11-22 12:11 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-26 13:56 [PATCH 0/7] Ensure stack is aligned for kernel entries Julien Thierry
2018-09-26 13:56 ` [PATCH 1/7] arm64: Add static check for pt_regs alignment Julien Thierry
2018-11-07 21:58 ` Will Deacon
2018-11-08 10:16 ` Mark Rutland
2018-11-08 11:57 ` Julien Thierry
2018-11-08 16:53 ` Will Deacon
2018-11-08 18:35 ` Ard Biesheuvel
2018-09-26 13:56 ` [PATCH 2/7] arm64: sdei: Always use sdei stack for sdei events Julien Thierry
2018-11-07 21:58 ` Will Deacon
2018-11-21 11:15 ` James Morse
2018-09-26 13:56 ` [PATCH 3/7] arm64: Align stack when taking exception from EL1 Julien Thierry
2018-11-07 21:59 ` Will Deacon
2018-11-08 12:20 ` Julien Thierry
2018-09-26 13:56 ` [PATCH 4/7] arm64: Add fast-path for stack alignment Julien Thierry
2018-11-07 21:59 ` Will Deacon
2018-11-08 12:21 ` Julien Thierry
2018-09-26 13:56 ` [PATCH 5/7] arm64: Do not apply BP hardening for hyp entries from EL2 Julien Thierry
2018-11-07 21:59 ` Will Deacon
2018-11-08 12:23 ` Julien Thierry
2018-09-26 13:56 ` [PATCH 6/7] arm64: Do not apply vector harderning " Julien Thierry
2018-11-07 21:59 ` Will Deacon
2018-11-08 12:31 ` Julien Thierry
2018-09-26 13:56 ` [PATCH 7/7] arm64: kvm: Align stack for exception coming " Julien Thierry
2018-10-19 8:07 ` [PATCH 0/7] Ensure stack is aligned for kernel entries Julien Thierry
2018-11-07 21:58 ` Will Deacon
2018-11-08 12:43 ` Julien Thierry
2018-11-08 13:04 ` Ard Biesheuvel
2018-11-08 13:27 ` Julien Thierry
2018-11-08 14:10 ` Ard Biesheuvel
2018-11-08 14:19 ` Ramana Radhakrishnan
2018-11-08 15:01 ` Julien Thierry
2018-11-08 15:33 ` Ramana Radhakrishnan
2018-11-08 15:41 ` Julien Thierry
2018-11-08 15:30 ` Dave Martin
2018-11-08 15:33 ` Ramana Radhakrishnan
2018-11-08 15:39 ` Dave Martin
2018-11-08 15:44 ` Ard Biesheuvel
2018-11-08 16:57 ` Ramana Radhakrishnan
2018-11-08 17:14 ` Ard Biesheuvel
2018-11-22 11:49 ` Julien Thierry
2018-11-22 12:11 ` Ard Biesheuvel [this message]
2018-11-22 15:10 ` Julien Thierry
2018-11-22 15:12 ` Will Deacon
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-all 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=CAKv+Gu9o_2-u6MJf1QLLSbdWfPvq0vqr61K0Nawr-Nob6hsepg@mail.gmail.com \
--to=ard.biesheuvel@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/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;
as well as URLs for NNTP newsgroup(s).