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
next prev parent 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