public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Kees Cook <kees.cook@canonical.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: x86@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/4] x86: clear XD_DISABLED flag on Intel to regain NX
Date: Wed, 10 Nov 2010 10:15:03 -0800	[thread overview]
Message-ID: <20101110181503.GS5876@outflux.net> (raw)
In-Reply-To: <20101110174210.GA9011@basil.fritz.box>

On Wed, Nov 10, 2010 at 06:42:10PM +0100, Andi Kleen wrote:
> > Right, which is why in this code it validates the CPU brand and its
> > family and model to make sure it's safe to read this MSR. The logic
> > is identical to the code in early_init_intel() that also accesses
> > MSR_IA32_MISC_ENABLE. I reviewed the CPU documentation and it seemed
> > to support that MSR_IA32_MISC_ENABLE would be available under those
> > conditions. That said, I only had a limited number of systems available
> > to test it on. If there are adjustments to be made, we can fix them.
> 
> If you can even find out. The system will die silently.
> 
> Usually the main culprits are simulators. VMs etc. Most do ignore unknown
> MSRs, but not all.

Well, that would be a bug in the simulator. :) Those bugs shouldn't cause a
non-trivial group of Linux users to lack NX.

> > > I would rather move this code later into the early init code (before the
> > > second mapping is set up, which is still in time). There the exception
> > > handlers are up and you could handle a #GP if it happens.
> > 
> > The problem is that the page tables are set up before early_init, and Peter
> > Anvin and I did not see a way to move the XD_DISABLE logic any later than
> > where I've put it. Though I should let Peter speak for himself here, as I'm
> > less familiar with that aspect of the code.
> 
> On x86-64 there are two kernel mappings: an early one and a final one.
> The final one is only set up in C code.
> 
> On 32bit there's only a single one, but it could be changed (e.g. 
> only add NX later)

I'm open to reviewing tested alternative patches. But right now, this
method is tested and works, and is based on several rounds of design
compromises/refinements.

-Kees

-- 
Kees Cook
Ubuntu Security Team

  reply	other threads:[~2010-11-10 18:15 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-09 18:11 [Security] [PATCH v3 0/4] x86: clear XD_DISABLED flag on Intel to regain NX Kees Cook
2010-11-09 18:14 ` [PATCH 1/4] x86: rename verify_cpu_64.S to verify_cpu.S Kees Cook
2010-11-09 18:46   ` Pekka Enberg
2010-11-09 19:00     ` Kees Cook
2010-11-09 19:59       ` Pekka Enberg
2010-11-09 19:02     ` Kees Cook
2010-11-09 19:11       ` Pekka Enberg
2010-11-09 18:15 ` [PATCH 2/4] x86: clear XD_DISABLED flag on Intel to regain NX Kees Cook
2010-11-10 16:11   ` Andi Kleen
2010-11-10 16:47     ` Kees Cook
2010-11-10 17:42       ` Andi Kleen
2010-11-10 18:15         ` Kees Cook [this message]
2010-11-09 18:15 ` [PATCH 3/4] x86: call verify_cpu during 32bit CPU startup Kees Cook
2010-11-09 19:09   ` Pekka Enberg
2010-11-09 19:19     ` Kees Cook
2010-11-09 19:46       ` Pekka Enberg
2010-11-09 19:56         ` Kees Cook
2010-11-09 20:28           ` Pekka Enberg
2010-11-09 20:48             ` Kees Cook
2010-11-09 20:50               ` Pekka Enberg
2010-11-09 18:15 ` [PATCH 4/4] x86: only CPU features determine NX capabilities Kees Cook
2010-11-09 18:31 ` [Security] [PATCH v3 0/4] x86: clear XD_DISABLED flag on Intel to regain NX Alan Cox
2010-11-09 18:56   ` Kees Cook
2010-11-09 22:50     ` Alan Cox
2010-11-09 23:53       ` Kees Cook
2010-11-10  0:21         ` Alan Cox
2010-11-10  0:43           ` Kees Cook
2010-11-10  1:10             ` Kees Cook
2010-11-10 11:11               ` Alan Cox
2010-11-10 11:15                 ` Ingo Molnar
2010-11-11 15:15               ` Rogier Wolff
  -- strict thread matches above, loose matches on Subject: below --
2010-11-10 18:35 [Security] [PATCH v5 " Kees Cook
2010-11-10 18:35 ` [PATCH 2/4] " Kees Cook
2010-11-09 22:17 [Security] [PATCH v4 0/4] " Kees Cook
2010-11-09 22:18 ` [PATCH 2/4] " Kees Cook
2010-06-19  5:50 [PATCH v2 0/4] " Kees Cook
2010-06-19  5:52 ` [PATCH 2/4] " Kees Cook

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=20101110181503.GS5876@outflux.net \
    --to=kees.cook@canonical.com \
    --cc=andi@firstfloor.org \
    --cc=linux-kernel@vger.kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox