linux/arch
Linus Torvalds de9e478b9d x86: fix SMAP in 32-bit environments
In commit 11f1a4b975 ("x86: reorganize SMAP handling in user space
accesses") I changed how the stac/clac instructions were generated
around the user space accesses, which then made it possible to do
batched accesses efficiently for user string copies etc.

However, in doing so, I completely spaced out, and didn't even think
about the 32-bit case.  And nobody really even seemed to notice, because
SMAP doesn't even exist until modern Skylake processors, and you'd have
to be crazy to run 32-bit kernels on a modern CPU.

Which brings us to Andy Lutomirski.

He actually tested the 32-bit kernel on new hardware, and noticed that
it doesn't work.  My bad.  The trivial fix is to add the required
uaccess begin/end markers around the raw accesses in <asm/uaccess_32.h>.

I feel a bit bad about this patch, just because that header file really
should be cleaned up to avoid all the duplicated code in it, and this
commit just expands on the problem.  But this just fixes the bug without
any bigger cleanup surgery.

Reported-and-tested-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-02-23 16:25:20 -08:00
..
alpha
arc ARC fixes for 4.5 2016-02-13 08:18:21 -08:00
arm Xen bug fixes for 4.5-rc5 2016-02-22 13:57:01 -08:00
arm64 arm64 fixes: 2016-02-19 08:40:05 -08:00
avr32
blackfin
c6x
cris Merge branch 'akpm' (patches from Andrew) 2016-01-21 12:32:08 -08:00
frv
h8300 Merge branch 'akpm' (patches from Andrew) 2016-01-21 12:32:08 -08:00
hexagon
ia64 [IA64] Enable copy_file_range syscall for ia64 2016-01-22 14:20:01 -08:00
m32r m32r: fix build failure due to SMP and MMU 2016-02-05 18:10:40 -08:00
m68k m68k/defconfig: Update defconfigs for v4.5-rc1 2016-02-01 10:35:38 +01:00
metag
microblaze
mips Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-02-14 10:49:01 -08:00
mn10300
nios2
openrisc
parisc
powerpc powerpc fixes for 4.5 #2 2016-02-20 09:22:11 -08:00
s390 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2016-02-19 08:33:12 -08:00
score
sh sh: fix smp_store_mb for !SMP 2016-01-26 10:18:29 +02:00
sparc
tile
um um: asm/page.h: remove the pte_high member from struct pte_t 2016-02-05 18:10:40 -08:00
unicore32
x86 x86: fix SMAP in 32-bit environments 2016-02-23 16:25:20 -08:00
xtensa
.gitignore
Kconfig