All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: linux-arm-kernel@lists.infradead.org
Cc: Russell King - ARM Linux <linux@armlinux.org.uk>,
	linux-arch@vger.kernel.org, Kees Cook <keescook@chromium.org>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	x86@kernel.org, linux-kernel@vger.kernel.org,
	kernel-hardening@lists.openwall.com,
	Andrew Morton <akpm@linux-foundation.org>,
	Mathias Krause <minipli@googlemail.com>
Subject: [kernel-hardening] Re: [PATCH 2/2] arm: apply more __ro_after_init
Date: Wed, 10 Aug 2016 21:31:05 +0200	[thread overview]
Message-ID: <2096112.OBiRuggdEi@wuerfel> (raw)
In-Reply-To: <20160810101253.GL1041@n2100.armlinux.org.uk>

On Wednesday, August 10, 2016 11:12:53 AM CEST Russell King - ARM Linux wrote:
> On Wed, Aug 10, 2016 at 12:00:53PM +0200, Arnd Bergmann wrote:
> > On Wednesday, August 10, 2016 10:43:39 AM CEST Russell King - ARM Linux wrote:
> > > On Fri, Jun 03, 2016 at 11:40:24AM -0700, Kees Cook wrote:
> > > > @@ -1309,16 +1309,11 @@ void __init arm_mm_memblock_reserve(void)
> > > >   * Any other function or debugging method which may touch any device _will_
> > > >   * crash the kernel.
> > > >   */
> > > > +static char vectors[PAGE_SIZE * 2] __ro_after_init __aligned(PAGE_SIZE);
> > > >  static void __init devicemaps_init(const struct machine_desc *mdesc)
> > > >  {
> > > >       struct map_desc map;
> > > >       unsigned long addr;
> > > > -     void *vectors;
> > > > -
> > > > -     /*
> > > > -      * Allocate the vector page early.
> > > > -      */
> > > > -     vectors = early_alloc(PAGE_SIZE * 2);
> > > 
> > > This one is not appropriate.  We _do_ write to these pages after init
> > > for FIQ handler updates.  See set_fiq_handler().
> > 
> > Is that the only thing that modifies the page? If we think this is a
> > valuable change, we could make it depend on the absence of FIQ
> > support, as very few platforms (rpc, omap1, s3c24xx and possibly
> > imx) seem to even use it.
> 
> There's the TLS emulation too, but that writes via the vectors mapping
> at 0xffff0ff0.

Ok, so that should be safe. Can we change the fiq code to also use the
high mapping and then take the __ro_after_init patch on top?

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: linux-arm-kernel@lists.infradead.org
Cc: Russell King - ARM Linux <linux@armlinux.org.uk>,
	linux-arch@vger.kernel.org, Kees Cook <keescook@chromium.org>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	x86@kernel.org, linux-kernel@vger.kernel.org,
	kernel-hardening@lists.openwall.com,
	Andrew Morton <akpm@linux-foundation.org>,
	Mathias Krause <minipli@googlemail.com>
Subject: Re: [PATCH 2/2] arm: apply more __ro_after_init
Date: Wed, 10 Aug 2016 21:31:05 +0200	[thread overview]
Message-ID: <2096112.OBiRuggdEi@wuerfel> (raw)
In-Reply-To: <20160810101253.GL1041@n2100.armlinux.org.uk>

On Wednesday, August 10, 2016 11:12:53 AM CEST Russell King - ARM Linux wrote:
> On Wed, Aug 10, 2016 at 12:00:53PM +0200, Arnd Bergmann wrote:
> > On Wednesday, August 10, 2016 10:43:39 AM CEST Russell King - ARM Linux wrote:
> > > On Fri, Jun 03, 2016 at 11:40:24AM -0700, Kees Cook wrote:
> > > > @@ -1309,16 +1309,11 @@ void __init arm_mm_memblock_reserve(void)
> > > >   * Any other function or debugging method which may touch any device _will_
> > > >   * crash the kernel.
> > > >   */
> > > > +static char vectors[PAGE_SIZE * 2] __ro_after_init __aligned(PAGE_SIZE);
> > > >  static void __init devicemaps_init(const struct machine_desc *mdesc)
> > > >  {
> > > >       struct map_desc map;
> > > >       unsigned long addr;
> > > > -     void *vectors;
> > > > -
> > > > -     /*
> > > > -      * Allocate the vector page early.
> > > > -      */
> > > > -     vectors = early_alloc(PAGE_SIZE * 2);
> > > 
> > > This one is not appropriate.  We _do_ write to these pages after init
> > > for FIQ handler updates.  See set_fiq_handler().
> > 
> > Is that the only thing that modifies the page? If we think this is a
> > valuable change, we could make it depend on the absence of FIQ
> > support, as very few platforms (rpc, omap1, s3c24xx and possibly
> > imx) seem to even use it.
> 
> There's the TLS emulation too, but that writes via the vectors mapping
> at 0xffff0ff0.

Ok, so that should be safe. Can we change the fiq code to also use the
high mapping and then take the __ro_after_init patch on top?

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] arm: apply more __ro_after_init
Date: Wed, 10 Aug 2016 21:31:05 +0200	[thread overview]
Message-ID: <2096112.OBiRuggdEi@wuerfel> (raw)
In-Reply-To: <20160810101253.GL1041@n2100.armlinux.org.uk>

On Wednesday, August 10, 2016 11:12:53 AM CEST Russell King - ARM Linux wrote:
> On Wed, Aug 10, 2016 at 12:00:53PM +0200, Arnd Bergmann wrote:
> > On Wednesday, August 10, 2016 10:43:39 AM CEST Russell King - ARM Linux wrote:
> > > On Fri, Jun 03, 2016 at 11:40:24AM -0700, Kees Cook wrote:
> > > > @@ -1309,16 +1309,11 @@ void __init arm_mm_memblock_reserve(void)
> > > >   * Any other function or debugging method which may touch any device _will_
> > > >   * crash the kernel.
> > > >   */
> > > > +static char vectors[PAGE_SIZE * 2] __ro_after_init __aligned(PAGE_SIZE);
> > > >  static void __init devicemaps_init(const struct machine_desc *mdesc)
> > > >  {
> > > >       struct map_desc map;
> > > >       unsigned long addr;
> > > > -     void *vectors;
> > > > -
> > > > -     /*
> > > > -      * Allocate the vector page early.
> > > > -      */
> > > > -     vectors = early_alloc(PAGE_SIZE * 2);
> > > 
> > > This one is not appropriate.  We _do_ write to these pages after init
> > > for FIQ handler updates.  See set_fiq_handler().
> > 
> > Is that the only thing that modifies the page? If we think this is a
> > valuable change, we could make it depend on the absence of FIQ
> > support, as very few platforms (rpc, omap1, s3c24xx and possibly
> > imx) seem to even use it.
> 
> There's the TLS emulation too, but that writes via the vectors mapping
> at 0xffff0ff0.

Ok, so that should be safe. Can we change the fiq code to also use the
high mapping and then take the __ro_after_init patch on top?

	Arnd

  reply	other threads:[~2016-08-10 19:31 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-03 18:40 [kernel-hardening] [PATCH 0/2] expand use of __ro_after_init Kees Cook
2016-06-03 18:40 ` Kees Cook
2016-06-03 18:40 ` Kees Cook
2016-06-03 18:40 ` [kernel-hardening] [PATCH 1/2] x86: apply more __ro_after_init and const Kees Cook
2016-06-03 18:40   ` Kees Cook
2016-06-03 18:40   ` Kees Cook
2016-06-03 18:40 ` [kernel-hardening] [PATCH 2/2] arm: apply more __ro_after_init Kees Cook
2016-06-03 18:40   ` Kees Cook
2016-06-03 18:40   ` Kees Cook
2016-06-03 18:51   ` [kernel-hardening] " Greg KH
2016-06-03 18:51     ` Greg KH
2016-06-03 21:26     ` Kees Cook
2016-06-03 21:26       ` Kees Cook
2016-06-03 21:26       ` Kees Cook
2016-06-03 21:54       ` [kernel-hardening] " Greg KH
2016-06-03 21:54         ` Greg KH
2016-06-03 22:01         ` Kees Cook
2016-06-03 22:01           ` Kees Cook
2016-06-03 22:01           ` Kees Cook
2016-08-10  9:43   ` [kernel-hardening] " Russell King - ARM Linux
2016-08-10  9:43     ` Russell King - ARM Linux
2016-08-10  9:43     ` Russell King - ARM Linux
2016-08-10 10:00     ` [kernel-hardening] " Arnd Bergmann
2016-08-10 10:00       ` Arnd Bergmann
2016-08-10 10:00       ` Arnd Bergmann
2016-08-10 10:12       ` [kernel-hardening] " Russell King - ARM Linux
2016-08-10 10:12         ` Russell King - ARM Linux
2016-08-10 10:12         ` Russell King - ARM Linux
2016-08-10 19:31         ` Arnd Bergmann [this message]
2016-08-10 19:31           ` Arnd Bergmann
2016-08-10 19:31           ` Arnd Bergmann
2016-08-10 23:02           ` [kernel-hardening] " Russell King - ARM Linux
2016-08-10 23:02             ` Russell King - ARM Linux
2016-08-10 23:02             ` Russell King - ARM Linux
2016-08-11 16:02             ` [kernel-hardening] " Arnd Bergmann
2016-08-11 16:02               ` Arnd Bergmann
2016-08-11 16:02               ` Arnd Bergmann
2016-08-11 16:02               ` Arnd Bergmann
2016-08-11 16:02               ` Arnd Bergmann
2016-08-12 11:34               ` [kernel-hardening] " Daniel Thompson
2016-08-12 11:34                 ` Daniel Thompson
2016-08-12 11:34                 ` Daniel Thompson
2016-08-12 11:34                 ` Daniel Thompson
2016-08-10 17:06     ` [kernel-hardening] " Daniel Micay
2016-08-10 17:06       ` Daniel Micay
2016-08-10 17:06       ` Daniel Micay
2016-08-10 18:32     ` [kernel-hardening] " Kees Cook
2016-08-10 18:32       ` Kees Cook
2016-08-10 18:32       ` Kees Cook
2016-08-10 19:41       ` [kernel-hardening] " Arnd Bergmann
2016-08-10 19:41         ` Arnd Bergmann
2016-08-10 19:41         ` Arnd Bergmann
2016-08-10 21:40         ` [kernel-hardening] " Kees Cook
2016-08-10 21:40           ` Kees Cook
2016-08-10 21:40           ` Kees Cook
2016-08-10 23:06         ` [kernel-hardening] " Russell King - ARM Linux
2016-08-10 23:06           ` Russell King - ARM Linux
2016-08-10 23:06           ` Russell King - ARM Linux
2016-08-11 15:54           ` [kernel-hardening] " Arnd Bergmann
2016-08-11 15:54             ` Arnd Bergmann
2016-08-11 15:54             ` Arnd Bergmann
2016-08-11 22:16             ` [kernel-hardening] " Kees Cook
2016-08-11 22:16               ` Kees Cook
2016-08-11 22:16               ` Kees Cook
2016-08-12 16:24             ` [kernel-hardening] " Russell King - ARM Linux
2016-08-12 16:24               ` Russell King - ARM Linux
2016-08-12 16:24               ` Russell King - ARM Linux

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=2096112.OBiRuggdEi@wuerfel \
    --to=arnd@arndb.de \
    --cc=akpm@linux-foundation.org \
    --cc=ard.biesheuvel@linaro.org \
    --cc=keescook@chromium.org \
    --cc=kernel-hardening@lists.openwall.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=minipli@googlemail.com \
    --cc=x86@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.