linux/arch/x86/ia32
Al Viro bd1c149aa9 Introduce [compat_]save_altstack_ex() to unbreak x86 SMAP
For performance reasons, when SMAP is in use, SMAP is left open for an
entire put_user_try { ... } put_user_catch(); block, however, calling
__put_user() in the middle of that block will close SMAP as the
STAC..CLAC constructs intentionally do not nest.

Furthermore, using __put_user() rather than put_user_ex() here is bad
for performance.

Thus, introduce new [compat_]save_altstack_ex() helpers that replace
__[compat_]save_altstack() for x86, being currently the only
architecture which supports put_user_try { ... } put_user_catch().

Reported-by: H. Peter Anvin <hpa@linux.intel.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: <stable@vger.kernel.org> # v3.8+
Link: http://lkml.kernel.org/n/tip-es5p6y64if71k8p5u08agv9n@git.kernel.org
2013-09-01 14:16:33 -07:00
..
audit.c x86: coding style fixes in arch/x86/ia32/audit.c 2008-01-30 13:32:54 +01:00
ia32_aout.c mm: remove free_area_cache 2013-07-10 18:11:34 -07:00
ia32_signal.c Introduce [compat_]save_altstack_ex() to unbreak x86 SMAP 2013-09-01 14:16:33 -07:00
ia32entry.S Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2013-02-23 18:50:11 -08:00
Makefile merge compat sys_ipc instances 2013-03-03 23:00:27 -05:00
nosyscall.c x86-64, ia32: Move compat_ni_syscall into C and its own file 2011-11-17 13:35:35 -08:00
sys_ia32.c unify compat fanotify_mark(2), switch to COMPAT_SYSCALL_DEFINE 2013-05-09 13:46:38 -04:00
syscall_ia32.c x86, syscall: Re-fix typo in comment 2011-11-18 16:25:07 -08:00