From: Kees Cook <keescook@chromium.org>
To: Max Filippov <jcmvbkbc@gmail.com>
Cc: Chris Zankel <chris@zankel.net>, Marc Zyngier <maz@kernel.org>,
"open list:TENSILICA XTENSA PORT (xtensa)"
<linux-xtensa@linux-xtensa.org>,
LKML <linux-kernel@vger.kernel.org>,
linux-hardening@vger.kernel.org
Subject: Re: [PATCH] xtensa: Implement "current_stack_pointer"
Date: Thu, 24 Feb 2022 19:27:22 -0800 [thread overview]
Message-ID: <202202241927.B5368AFC@keescook> (raw)
In-Reply-To: <CAMo8BfLU-BLRnp=fmmQkTckxPq1vkSZeOwfgiSW06L0+H+EDJA@mail.gmail.com>
On Wed, Feb 23, 2022 at 10:58:00PM -0800, Max Filippov wrote:
> On Wed, Feb 23, 2022 at 10:43 PM Kees Cook <keescook@chromium.org> wrote:
> >
> > On Wed, Feb 23, 2022 at 10:22:59PM -0800, Max Filippov wrote:
> > > On Wed, Feb 23, 2022 at 10:05 PM Kees Cook <keescook@chromium.org> wrote:
> > > >
> > > > To follow the existing per-arch conventions replace open-coded uses
> > > > of asm "sp" as "current_stack_pointer". This will let it be used in
> > > > non-arch places (like HARDENED_USERCOPY).
> > > >
> > > > Cc: Chris Zankel <chris@zankel.net>
> > > > Cc: Max Filippov <jcmvbkbc@gmail.com>
> > > > Cc: Marc Zyngier <maz@kernel.org>
> > > > Cc: linux-xtensa@linux-xtensa.org
> > > > Signed-off-by: Kees Cook <keescook@chromium.org>
> > > > ---
> > > > arch/xtensa/Kconfig | 1 +
> > > > arch/xtensa/include/asm/current.h | 2 ++
> > > > arch/xtensa/include/asm/stacktrace.h | 2 +-
> > > > arch/xtensa/kernel/irq.c | 3 +--
> > > > 4 files changed, 5 insertions(+), 3 deletions(-)
> > >
> > > Acked-by: Max Filippov <jcmvbkbc@gmail.com>
> >
> > Thanks! And apologies, my cross-compiler tricked me into thinking this
> > patch compiled without problems. It did, however. I've change the patch
> > slightly to deal with the needed casts:
> >
> > diff --git a/arch/xtensa/include/asm/stacktrace.h b/arch/xtensa/include/asm/stacktrace.h
> > index fe06e8ed162b..a85e785a6288 100644
> > --- a/arch/xtensa/include/asm/stacktrace.h
> > +++ b/arch/xtensa/include/asm/stacktrace.h
> > @@ -19,14 +19,14 @@ struct stackframe {
> >
> > static __always_inline unsigned long *stack_pointer(struct task_struct *task)
> > {
> > - unsigned long *sp;
> > + unsigned long sp;
> >
> > if (!task || task == current)
> > - __asm__ __volatile__ ("mov %0, a1\n" : "=a"(sp));
> > + sp = current_stack_pointer;
> > else
> > - sp = (unsigned long *)task->thread.sp;
> > + sp = task->thread.sp;
> >
> > - return sp;
> > + return (unsigned long *)sp;
> > }
> >
> > void walk_stackframe(unsigned long *sp,
> >
> > Shall I send a v2, or just carry this fix in my tree?
>
> This additional change looks good to me, if you could
> fold it into the original patch that'd be perfect. But separate
> patch would also work.
Thanks!
--
Kees Cook
prev parent reply other threads:[~2022-02-25 3:27 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-24 6:05 [PATCH] xtensa: Implement "current_stack_pointer" Kees Cook
2022-02-24 6:22 ` Max Filippov
2022-02-24 6:43 ` Kees Cook
2022-02-24 6:58 ` Max Filippov
2022-02-25 3:27 ` Kees Cook [this message]
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=202202241927.B5368AFC@keescook \
--to=keescook@chromium.org \
--cc=chris@zankel.net \
--cc=jcmvbkbc@gmail.com \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-xtensa@linux-xtensa.org \
--cc=maz@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.