linux/arch/x86/um
Johannes Berg bfc58e2b98 um: remove process stub VMA
This mostly reverts the old commit 3963333fe6 ("uml: cover stubs
with a VMA") which had added a VMA to the existing PTEs. However,
there's no real reason to have the PTEs in the first place and the
VMA cannot be 'fixed' in place, which leads to bugs that userspace
could try to unmap them and be forcefully killed, or such. Also,
there's a bit of an ugly hole in userspace's address space.

Simplify all this: just install the stub code/page at the top of
the (inner) address space, i.e. put it just above TASK_SIZE. The
pages are simply hard-coded to be mapped in the userspace process
we use to implement an mm context, and they're out of reach of the
inner mmap/munmap/mprotect etc. since they're above TASK_SIZE.

Getting rid of the VMA also makes vma_merge() no longer hit one of
the VM_WARN_ON()s there because we installed a VMA while the code
assumes the stack VMA is the first one.

It also removes a lockdep warning about mmap_sem usage since we no
longer have uml_setup_stubs() and thus no longer need to do any
manipulation that would require mmap_sem in activate_mm().

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
2021-02-12 21:37:38 +01:00
..
asm saner calling conventions for csum_and_copy_..._user() 2020-08-20 15:45:15 -04:00
os-Linux um: remove process stub VMA 2021-02-12 21:37:38 +01:00
shared/sysdep um: rework userspace stubs to not hard-code stub location 2021-02-12 21:35:02 +01:00
vdso kbuild: remove cc-option test of -fno-stack-protector 2020-07-07 11:13:10 +09:00
Kconfig kbuild: use KBUILD_DEFCONFIG as the fallback for DEFCONFIG_LIST 2020-03-03 20:49:21 +09:00
Makefile x86/entry/32: Use IA32-specific wrappers for syscalls taking 64-bit arguments 2020-03-21 16:03:24 +01:00
bugs_32.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
bugs_64.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
checksum_32.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
delay.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
elfcore.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fault.c um: don't compare a pointer to 0 2012-12-20 11:49:39 -08:00
ldt.c x86/entry: Use SYSCALL_DEFINE() macros for sys_modify_ldt() 2017-10-20 10:37:33 +02:00
mem_32.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mem_64.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ptrace_32.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
ptrace_64.c um: Remove dead usage of TIF_IA32 2020-10-11 23:19:36 +02:00
ptrace_user.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
setjmp_32.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
setjmp_64.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
signal.c signal: Remove task parameter from force_sig 2019-05-27 09:36:28 -05:00
stub_32.S um: rework userspace stubs to not hard-code stub location 2021-02-12 21:35:02 +01:00
stub_64.S um: rework userspace stubs to not hard-code stub location 2021-02-12 21:35:02 +01:00
stub_segv.c um: rework userspace stubs to not hard-code stub location 2021-02-12 21:35:02 +01:00
sys_call_table_32.c x86/entry: Remove syscall qualifier support 2020-03-21 16:03:22 +01:00
sys_call_table_64.c x86/entry/64: Add __SYSCALL_COMMON() 2020-03-21 16:03:22 +01:00
syscalls_32.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
syscalls_64.c um/arch_prctl: Fix fallout from x86 arch_prctl() rework 2017-03-21 10:08:29 +01:00
sysrq_32.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/debug.h> 2017-03-02 08:42:34 +01:00
sysrq_64.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/debug.h> 2017-03-02 08:42:34 +01:00
tls_32.c um: Implement copy_thread_tls 2020-01-07 13:31:29 +01:00
tls_64.c um: Implement copy_thread_tls 2020-01-07 13:31:29 +01:00
user-offsets.c um: Some fixes to build UML with musl 2020-10-11 23:13:06 +02:00