All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ardb@kernel.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Cc: "Keith Packard" <keithpac@amazon.com>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"Abbott Liu" <liuwenliang@huawei.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Andrey Ryabinin" <ryabinin.a.a@gmail.com>,
	"Anshuman Khandual" <anshuman.khandual@arm.com>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Bjorn Andersson" <bjorn.andersson@linaro.org>,
	"Christoph Lameter" <cl@linux.com>,
	"Dennis Zhou" <dennis@kernel.org>,
	"Geert Uytterhoeven" <geert+renesas@glider.be>,
	"Jens Axboe" <axboe@kernel.dk>, "Joe Perches" <joe@perches.com>,
	"Kees Cook" <keescook@chromium.org>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	"Linux Memory Management List" <linux-mm@kvack.org>,
	"Manivannan Sadhasivam" <mani@kernel.org>,
	"Marc Zyngier" <maz@kernel.org>,
	"Masahiro Yamada" <masahiroy@kernel.org>,
	"Mike Rapoport" <rppt@kernel.org>,
	"Nathan Chancellor" <nathan@kernel.org>,
	"Nick Desaulniers" <ndesaulniers@google.com>,
	"Nick Desaulniers" <ndesaulniers@gooogle.com>,
	"Nicolas Pitre" <nico@fluxnic.net>,
	"Russell King" <linux@armlinux.org.uk>,
	"Tejun Heo" <tj@kernel.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Valentin Schneider" <valentin.schneider@arm.com>,
	"Viresh Kumar" <viresh.kumar@linaro.org>,
	"Wolfram Sang (Renesas)" <wsa+renesas@sang-engineering.com>,
	"YiFei Zhu" <yifeifz2@illinois.edu>
Subject: Re: [PATCH 0/7] ARM: support THREAD_INFO_IN_TASK (v3)
Date: Wed, 8 Sep 2021 09:47:36 +0200	[thread overview]
Message-ID: <CAMj1kXF8X0j7Be_+3Z4uHcq0ZHKxsB5hW-7PEVb4dB54HFJgOg@mail.gmail.com> (raw)
In-Reply-To: <2d5e3f95-77ce-cd26-9020-3c1a8a65e799@canonical.com>

On Wed, 8 Sept 2021 at 09:01, Krzysztof Kozlowski
<krzysztof.kozlowski@canonical.com> wrote:
>
> On 08/09/2021 00:00, Keith Packard wrote:
> > Placing thread_info in the kernel stack leaves it vulnerable to stack
> > overflow attacks. This short series addresses that by using the
> > existing THREAD_INFO_IN_TASK infrastructure.
> >
> > This is the third version of this series, in this version the changes
> > are restricted to hardware which provides the TPIDRPRW register. This
> > register is repurposed from holding the per_cpu_offset value to
> > holding the 'current' value as that allows fetching this value
> > atomically so that it can be used in a preemptable context.
> >
> > The series is broken into seven pieces:
> >
> >  1) Change the secondary_start_kernel API to receive the cpu
> >     number. This avoids needing to be able to find this value independently in
> >     future patches.
> >
> >  2) Change the secondary_start_kernel API to also receive the 'task'
> >     value. Passing the value to this function also avoids needing to
> >     be able to discover it independently.
> >
> >  3) A cleanup which avoids assuming that THREAD_INFO_IN_TASK is not set.
> >
> >  4) A hack, borrowed from the powerpc arch, which allows locating the 'cpu'
> >     field in either thread_info or task_struct, without requiring linux/sched.h
> >     to be included in asm/smp.h
> >
> >  5) Disable the optimization storing per_cpu_offset in TPIDRPRW. This leaves
> >     the register free to hold 'current' instead.
> >
> >  6) Use TPIDRPRW for 'current'. This is enabled for either CPU_V6K or CPU_V7,
> >     but not if CPU_V6 is also enabled.
> >
> >  7) Enable THREAD_INFO_IN_TASK whenever TPIDRPRW is used to hold 'current'.
>
> Hi,
>
> Thanks for your patches. This seems to be a v3 but the patches are not
> marked with it. Use "-v3" in format-patch to get it right.
>
> The email here also lacks diffstat which is useful, for example to check
> whether any maintainer's relevant files are touched here. You can get it
> with "--cover-letter".
>
> In total the command should look like:
>     git format-patch --cover-letter -v3 -7 HEAD
>
> Of course you can use any other tools to achieve the same result but as
> of now - result is not the same.
>

Also, this ended up in my GMail spam folder, likely due to some
antispam ID header being set incorrectly?

WARNING: multiple messages have this Message-ID (diff)
From: Ard Biesheuvel <ardb@kernel.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Cc: "Keith Packard" <keithpac@amazon.com>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"Abbott Liu" <liuwenliang@huawei.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Andrey Ryabinin" <ryabinin.a.a@gmail.com>,
	"Anshuman Khandual" <anshuman.khandual@arm.com>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Bjorn Andersson" <bjorn.andersson@linaro.org>,
	"Christoph Lameter" <cl@linux.com>,
	"Dennis Zhou" <dennis@kernel.org>,
	"Geert Uytterhoeven" <geert+renesas@glider.be>,
	"Jens Axboe" <axboe@kernel.dk>, "Joe Perches" <joe@perches.com>,
	"Kees Cook" <keescook@chromium.org>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	"Linux Memory Management List" <linux-mm@kvack.org>,
	"Manivannan Sadhasivam" <mani@kernel.org>,
	"Marc Zyngier" <maz@kernel.org>,
	"Masahiro Yamada" <masahiroy@kernel.org>,
	"Mike Rapoport" <rppt@kernel.org>,
	"Nathan Chancellor" <nathan@kernel.org>,
	"Nick Desaulniers" <ndesaulniers@google.com>,
	"Nick Desaulniers" <ndesaulniers@gooogle.com>,
	"Nicolas Pitre" <nico@fluxnic.net>,
	"Russell King" <linux@armlinux.org.uk>,
	"Tejun Heo" <tj@kernel.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Valentin Schneider" <valentin.schneider@arm.com>,
	"Viresh Kumar" <viresh.kumar@linaro.org>,
	"Wolfram Sang (Renesas)" <wsa+renesas@sang-engineering.com>,
	"YiFei Zhu" <yifeifz2@illinois.edu>
Subject: Re: [PATCH 0/7] ARM: support THREAD_INFO_IN_TASK (v3)
Date: Wed, 8 Sep 2021 09:47:36 +0200	[thread overview]
Message-ID: <CAMj1kXF8X0j7Be_+3Z4uHcq0ZHKxsB5hW-7PEVb4dB54HFJgOg@mail.gmail.com> (raw)
In-Reply-To: <2d5e3f95-77ce-cd26-9020-3c1a8a65e799@canonical.com>

On Wed, 8 Sept 2021 at 09:01, Krzysztof Kozlowski
<krzysztof.kozlowski@canonical.com> wrote:
>
> On 08/09/2021 00:00, Keith Packard wrote:
> > Placing thread_info in the kernel stack leaves it vulnerable to stack
> > overflow attacks. This short series addresses that by using the
> > existing THREAD_INFO_IN_TASK infrastructure.
> >
> > This is the third version of this series, in this version the changes
> > are restricted to hardware which provides the TPIDRPRW register. This
> > register is repurposed from holding the per_cpu_offset value to
> > holding the 'current' value as that allows fetching this value
> > atomically so that it can be used in a preemptable context.
> >
> > The series is broken into seven pieces:
> >
> >  1) Change the secondary_start_kernel API to receive the cpu
> >     number. This avoids needing to be able to find this value independently in
> >     future patches.
> >
> >  2) Change the secondary_start_kernel API to also receive the 'task'
> >     value. Passing the value to this function also avoids needing to
> >     be able to discover it independently.
> >
> >  3) A cleanup which avoids assuming that THREAD_INFO_IN_TASK is not set.
> >
> >  4) A hack, borrowed from the powerpc arch, which allows locating the 'cpu'
> >     field in either thread_info or task_struct, without requiring linux/sched.h
> >     to be included in asm/smp.h
> >
> >  5) Disable the optimization storing per_cpu_offset in TPIDRPRW. This leaves
> >     the register free to hold 'current' instead.
> >
> >  6) Use TPIDRPRW for 'current'. This is enabled for either CPU_V6K or CPU_V7,
> >     but not if CPU_V6 is also enabled.
> >
> >  7) Enable THREAD_INFO_IN_TASK whenever TPIDRPRW is used to hold 'current'.
>
> Hi,
>
> Thanks for your patches. This seems to be a v3 but the patches are not
> marked with it. Use "-v3" in format-patch to get it right.
>
> The email here also lacks diffstat which is useful, for example to check
> whether any maintainer's relevant files are touched here. You can get it
> with "--cover-letter".
>
> In total the command should look like:
>     git format-patch --cover-letter -v3 -7 HEAD
>
> Of course you can use any other tools to achieve the same result but as
> of now - result is not the same.
>

Also, this ended up in my GMail spam folder, likely due to some
antispam ID header being set incorrectly?

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-09-08  7:49 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-02 15:54 [PATCH 0/2]: ARM: Enable THREAD_INFO_IN_TASK Keith Packard
2021-09-02 15:54 ` Keith Packard
2021-09-02 15:54 ` [PATCH 1/2] ARM: Add per-cpu variable holding cpu number Keith Packard
2021-09-02 15:54   ` Keith Packard
2021-09-02 15:54 ` [PATCH 2/2] ARM: Move thread_info into task_struct Keith Packard
2021-09-02 15:54   ` Keith Packard
2021-09-02 16:07 ` [PATCH 0/2]: ARM: Enable THREAD_INFO_IN_TASK Kees Cook
2021-09-02 16:07   ` Kees Cook
2021-09-02 16:18   ` Ard Biesheuvel
2021-09-02 16:18     ` Ard Biesheuvel
2021-09-02 17:37     ` Kees Cook
2021-09-02 17:37       ` Kees Cook
2021-09-02 16:54   ` Russell King (Oracle)
2021-09-02 16:54     ` Russell King (Oracle)
2021-09-02 16:53 ` Russell King (Oracle)
2021-09-02 16:53   ` Russell King (Oracle)
2021-09-02 17:35   ` Kees Cook
2021-09-02 17:35     ` Kees Cook
2021-09-02 17:58   ` Keith Packard
2021-09-02 17:58     ` Keith Packard
2021-09-04  6:09 ` [PATCH 0/2] ARM: support THREAD_INFO_IN_TASK (v7 only) (v2) Keith Packard
2021-09-04  6:09   ` Keith Packard
2021-09-04  6:09   ` [PATCH 1/3] ARM: Pass cpu number to secondary_start_kernel Keith Packard
2021-09-04  6:09     ` Keith Packard
2021-09-05 20:25     ` Ard Biesheuvel
2021-09-05 20:25       ` Ard Biesheuvel
2021-09-04  6:09   ` [PATCH 2/3] ARM: Move thread_info into task_struct (v7 only) Keith Packard
2021-09-04  6:09     ` Keith Packard
2021-09-05 20:56     ` Ard Biesheuvel
2021-09-05 20:56       ` Ard Biesheuvel
2021-09-06  6:14       ` Keith Packard
2021-09-06  6:14         ` Keith Packard
2021-09-06  7:49         ` Ard Biesheuvel
2021-09-06  7:49           ` Ard Biesheuvel
2021-09-07 15:24           ` Keith Packard
2021-09-07 15:24             ` Keith Packard
2021-09-07 16:05             ` Ard Biesheuvel
2021-09-07 16:05               ` Ard Biesheuvel
2021-09-07 22:17               ` Keith Packard
2021-09-07 22:17                 ` Keith Packard
2021-09-06  6:20       ` Keith Packard
2021-09-06  6:20         ` Keith Packard
2021-09-04  6:09   ` [PATCH 3/3] ARM: Add per-cpu variable cpu_number " Keith Packard
2021-09-04  6:09     ` Keith Packard
2021-09-07 22:00   ` [PATCH 0/7] ARM: support THREAD_INFO_IN_TASK (v3) Keith Packard
2021-09-07 22:00     ` Keith Packard
2021-09-07 22:00     ` [PATCH 1/7] ARM: Pass cpu number to secondary_start_kernel Keith Packard
2021-09-07 22:00       ` Keith Packard
2021-09-07 22:00     ` [PATCH 2/7] ARM: Pass task " Keith Packard
2021-09-07 22:00       ` Keith Packard
2021-09-07 22:00     ` [PATCH 3/7] ARM: Use smp_processor_id() in vfp_pm_suspend instead of ti->cpu Keith Packard
2021-09-07 22:00       ` Keith Packard
2021-09-07 22:00     ` [PATCH 4/7] ARM: Use hack from powerpc to get current cpu number Keith Packard
2021-09-07 22:00       ` Keith Packard
2021-09-08  7:45       ` Ard Biesheuvel
2021-09-08  7:45         ` Ard Biesheuvel
2021-09-07 22:00     ` [PATCH 5/7] ARM: Stop using TPIDRPRW to hold per_cpu_offset Keith Packard
2021-09-07 22:00       ` Keith Packard
2021-09-09 13:54       ` Ard Biesheuvel
2021-09-09 13:54         ` Ard Biesheuvel
2021-09-07 22:00     ` [PATCH 6/7] ARM: Use TPIDRPRW for current Keith Packard
2021-09-07 22:00       ` Keith Packard
2021-09-09 13:56       ` Ard Biesheuvel
2021-09-09 13:56         ` Ard Biesheuvel
2021-09-07 22:00     ` [PATCH 7/7] ARM: Move thread_info into task_struct (v7 only) Keith Packard
2021-09-07 22:00       ` Keith Packard
2021-09-08  7:01     ` [PATCH 0/7] ARM: support THREAD_INFO_IN_TASK (v3) Krzysztof Kozlowski
2021-09-08  7:01       ` Krzysztof Kozlowski
2021-09-08  7:47       ` Ard Biesheuvel [this message]
2021-09-08  7:47         ` Ard Biesheuvel
2021-09-08  7:50         ` Geert Uytterhoeven
2021-09-08  7:50           ` Geert Uytterhoeven

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=CAMj1kXF8X0j7Be_+3Z4uHcq0ZHKxsB5hW-7PEVb4dB54HFJgOg@mail.gmail.com \
    --to=ardb@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=anshuman.khandual@arm.com \
    --cc=arnd@arndb.de \
    --cc=axboe@kernel.dk \
    --cc=bjorn.andersson@linaro.org \
    --cc=cl@linux.com \
    --cc=dennis@kernel.org \
    --cc=geert+renesas@glider.be \
    --cc=joe@perches.com \
    --cc=keescook@chromium.org \
    --cc=keithpac@amazon.com \
    --cc=krzysztof.kozlowski@canonical.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux@armlinux.org.uk \
    --cc=liuwenliang@huawei.com \
    --cc=mani@kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=maz@kernel.org \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=ndesaulniers@gooogle.com \
    --cc=nico@fluxnic.net \
    --cc=rppt@kernel.org \
    --cc=ryabinin.a.a@gmail.com \
    --cc=tglx@linutronix.de \
    --cc=tj@kernel.org \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=valentin.schneider@arm.com \
    --cc=viresh.kumar@linaro.org \
    --cc=wsa+renesas@sang-engineering.com \
    --cc=yifeifz2@illinois.edu \
    /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.