From: "H. Peter Anvin" <hpa@linux.intel.com>
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
"H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Kees Cook <keescook@chromium.org>, Linda Wang <lwang@redhat.com>,
Matt Fleming <matt.fleming@intel.com>,
"H. Peter Anvin" <hpa@linux.intel.com>
Subject: [PATCH 00/11] x86: Supervisor Mode Access Prevention
Date: Fri, 21 Sep 2012 12:43:04 -0700 [thread overview]
Message-ID: <1348256595-29119-1-git-send-email-hpa@linux.intel.com> (raw)
Supervisor Mode Access Prevention (SMAP) is a new security feature
disclosed by Intel in revision 014 of the Intel® Architecture
Instruction Set Extensions Programming Reference:
http://software.intel.com/sites/default/files/319433-014.pdf
When SMAP is active, the kernel cannot normally access pages that are
user space (U=1). Since the kernel does have the need to access user
space pages under specific circumstances, an override is provided: the
kernel can access user space pages if EFLAGS.AC=1. For system data
structures, e.g. descriptor tables, that are accessed by the processor
directly, SMAP is active even in CPL 3 regardless of EFLAGS.AC.
SMAP also includes two new instructions, STAC and CLAC, to flip the AC
flag more quickly.
Note: patch 01/11 is already in tip:x86/cpufeature.
List of patches:
x86, cpufeature: Add feature bit for SMAP
x86-32, mm: The WP test should be done on a kernel page
x86, smap: Add CR4 bit for SMAP
x86, alternative: Use .pushsection/.popsection
x86, alternative: Add header guards to <asm/alternative-asm.h>
x86, smap: Add a header file with macros for STAC/CLAC
x86, uaccess: Merge prototypes for clear_user/__clear_user
x86, smap: Add STAC and CLAC instructions to control user space access
x86, smap: Turn on Supervisor Mode Access Prevention
x86, smap: A page fault due to SMAP is an oops
x86, smap: Reduce the SMAP overhead for signal handling
Diff stat:
Documentation/kernel-parameters.txt | 6 ++-
arch/x86/Kconfig | 11 ++++
arch/x86/ia32/ia32_signal.c | 12 +++--
arch/x86/ia32/ia32entry.S | 6 ++
arch/x86/include/asm/alternative-asm.h | 9 +++-
arch/x86/include/asm/alternative.h | 32 ++++++------
arch/x86/include/asm/cpufeature.h | 1 +
arch/x86/include/asm/fpu-internal.h | 10 ++--
arch/x86/include/asm/futex.h | 19 +++++--
arch/x86/include/asm/processor-flags.h | 1 +
arch/x86/include/asm/smap.h | 91 ++++++++++++++++++++++++++++++++
arch/x86/include/asm/uaccess.h | 28 ++++++----
arch/x86/include/asm/uaccess_32.h | 3 -
arch/x86/include/asm/uaccess_64.h | 3 -
arch/x86/include/asm/xsave.h | 10 ++--
arch/x86/kernel/cpu/common.c | 29 ++++++++++-
arch/x86/kernel/entry_64.S | 11 ++++-
arch/x86/kernel/signal.c | 24 +++++----
arch/x86/lib/copy_user_64.S | 7 +++
arch/x86/lib/copy_user_nocache_64.S | 3 +
arch/x86/lib/getuser.S | 10 ++++
arch/x86/lib/putuser.S | 8 +++-
arch/x86/lib/usercopy_32.c | 13 ++++-
arch/x86/lib/usercopy_64.c | 3 +
arch/x86/mm/fault.c | 18 ++++++
arch/x86/mm/init_32.c | 2 +-
26 files changed, 301 insertions(+), 69 deletions(-)
next reply other threads:[~2012-09-21 19:43 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-21 19:43 H. Peter Anvin [this message]
2012-09-21 19:43 ` [PATCH 01/11] x86, cpufeature: Add feature bit for SMAP H. Peter Anvin
2012-09-21 19:43 ` [PATCH 02/11] x86-32, mm: The WP test should be done on a kernel page H. Peter Anvin
2012-09-21 19:58 ` [tip:x86/smap] " tip-bot for H. Peter Anvin
2012-09-21 19:43 ` [PATCH 03/11] x86, smap: Add CR4 bit for SMAP H. Peter Anvin
2012-09-21 19:59 ` [tip:x86/smap] " tip-bot for H. Peter Anvin
2012-09-21 19:43 ` [PATCH 04/11] x86, alternative: Use .pushsection/.popsection H. Peter Anvin
2012-09-21 20:00 ` [tip:x86/smap] " tip-bot for H. Peter Anvin
2012-09-21 19:43 ` [PATCH 05/11] x86, alternative: Add header guards to <asm/alternative-asm.h> H. Peter Anvin
2012-09-21 20:01 ` [tip:x86/smap] x86, alternative: Add header guards to <asm/ alternative-asm.h> tip-bot for H. Peter Anvin
2012-09-21 19:43 ` [PATCH 06/11] x86, smap: Add a header file with macros for STAC/CLAC H. Peter Anvin
2012-09-21 20:02 ` [tip:x86/smap] x86, smap: Add a header file with macros for STAC/ CLAC tip-bot for H. Peter Anvin
2012-09-21 19:43 ` [PATCH 07/11] x86, uaccess: Merge prototypes for clear_user/__clear_user H. Peter Anvin
2012-09-21 20:03 ` [tip:x86/smap] x86, uaccess: Merge prototypes for clear_user/ __clear_user tip-bot for H. Peter Anvin
2012-09-21 19:43 ` [PATCH 08/11] x86, smap: Add STAC and CLAC instructions to control user space access H. Peter Anvin
2012-09-21 20:04 ` [tip:x86/smap] " tip-bot for H. Peter Anvin
2012-09-22 0:16 ` [tip:x86/smap] x86-32, smap: Add STAC/ CLAC instructions to 32-bit kernel entry tip-bot for H. Peter Anvin
2012-09-21 19:43 ` [PATCH 09/11] x86, smap: Turn on Supervisor Mode Access Prevention H. Peter Anvin
2012-09-21 20:05 ` [tip:x86/smap] " tip-bot for H. Peter Anvin
2012-09-21 19:43 ` [PATCH 10/11] x86, smap: A page fault due to SMAP is an oops H. Peter Anvin
2012-09-21 20:06 ` [tip:x86/smap] " tip-bot for H. Peter Anvin
2012-09-21 19:43 ` [PATCH 11/11] x86, smap: Reduce the SMAP overhead for signal handling H. Peter Anvin
2012-09-21 20:07 ` [tip:x86/smap] " tip-bot for H. Peter Anvin
2012-09-21 19:54 ` [PATCH 00/11] x86: Supervisor Mode Access Prevention Linus Torvalds
2012-09-21 19:57 ` H. Peter Anvin
2012-09-21 20:08 ` Ingo Molnar
2012-09-21 21:03 ` H. Peter Anvin
2012-09-21 21:09 ` Linus Torvalds
2012-09-21 21:12 ` H. Peter Anvin
2012-09-21 22:07 ` Eric W. Biederman
2012-09-21 22:12 ` H. Peter Anvin
2012-09-22 0:41 ` Eric W. Biederman
2012-09-24 23:27 ` [RFC PATCH] x86-32: Start out eflags and cr4 clean H. Peter Anvin
2012-09-25 13:27 ` Konrad Rzeszutek Wilk
2012-09-25 13:48 ` Ian Campbell
2012-09-26 11:29 ` Konrad Rzeszutek Wilk
2012-09-27 6:11 ` [tip:x86/smap] " tip-bot for H. Peter Anvin
2012-11-24 3:49 ` Yuhong Bao
2012-11-24 5:06 ` H. Peter Anvin
2012-09-27 6:11 ` [tip:x86/smap] x86, suspend: On wakeup always initialize cr4 and EFER tip-bot for H. Peter Anvin
2012-10-01 22:04 ` [tip:x86/urgent] x86, suspend: Correct the restore of CR4, EFER; skip computing EFLAGS.ID tip-bot for H. Peter Anvin
2012-10-02 6:52 ` tip-bot for H. Peter Anvin
2012-10-10 19:59 ` [RFC PATCH] x86-32: Start out eflags and cr4 clean Andres Salomon
2013-01-19 0:40 ` Andres Salomon
2013-01-19 0:42 ` H. Peter Anvin
2013-01-19 1:05 ` [Techteam] " Mitch Bradley
2013-01-19 2:35 ` H. Peter Anvin
2013-01-19 7:44 ` Mitch Bradley
2013-01-19 12:34 ` Daniel Drake
2013-01-19 19:15 ` [tip:x86/urgent] x86-32: Start out cr0 clean, disable paging before modifying cr3/4 tip-bot for H. Peter Anvin
2012-09-21 22:08 ` [PATCH 00/11] x86: Supervisor Mode Access Prevention Dave Jones
2012-09-21 22:10 ` H. Peter Anvin
2012-09-22 11:32 ` Ingo Molnar
2012-09-24 20:31 ` H. Peter Anvin
2012-09-24 20:43 ` Kees Cook
2012-09-24 20:51 ` H. Peter Anvin
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=1348256595-29119-1-git-send-email-hpa@linux.intel.com \
--to=hpa@linux.intel.com \
--cc=hpa@zytor.com \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lwang@redhat.com \
--cc=matt.fleming@intel.com \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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.