Revert "Revert "uaccess: add infrastructure for kernel builds with set_fs()""
This reverts commit e47ed07310
.
Bug: 171770067
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I6ea54389dffe53bd903ade11314a77668d10a014
This commit is contained in:
parent
fb5c9b8aac
commit
964f595e69
@ -24,6 +24,9 @@ config KEXEC_ELF
|
||||
config HAVE_IMA_KEXEC
|
||||
bool
|
||||
|
||||
config SET_FS
|
||||
bool
|
||||
|
||||
config HOTPLUG_SMT
|
||||
bool
|
||||
|
||||
|
@ -39,6 +39,7 @@ config ALPHA
|
||||
select OLD_SIGSUSPEND
|
||||
select CPU_NO_EFFICIENT_FFS if !ALPHA_EV67
|
||||
select MMU_GATHER_NO_RANGE
|
||||
select SET_FS
|
||||
help
|
||||
The Alpha is a 64-bit general-purpose processor designed and
|
||||
marketed by the Digital Equipment Corporation of blessed memory,
|
||||
|
@ -48,6 +48,7 @@ config ARC
|
||||
select PCI_SYSCALL if PCI
|
||||
select PERF_USE_VMALLOC if ARC_CACHE_VIPT_ALIASING
|
||||
select HAVE_ARCH_JUMP_LABEL if ISA_ARCV2 && !CPU_ENDIAN_BE32
|
||||
select SET_FS
|
||||
|
||||
config ARCH_HAS_CACHE_LINE_SIZE
|
||||
def_bool y
|
||||
|
@ -120,6 +120,7 @@ config ARM
|
||||
select PCI_SYSCALL if PCI
|
||||
select PERF_USE_VMALLOC
|
||||
select RTC_LIB
|
||||
select SET_FS
|
||||
select SYS_SUPPORTS_APM_EMULATION
|
||||
# Above selects are sorted alphabetically; please add new ones
|
||||
# according to that. Thanks.
|
||||
|
@ -195,6 +195,7 @@ config ARM64
|
||||
select PCI_SYSCALL if PCI
|
||||
select POWER_RESET
|
||||
select POWER_SUPPLY
|
||||
select SET_FS
|
||||
select SPARSE_IRQ
|
||||
select SWIOTLB
|
||||
select SYSCTL_EXCEPTION_TRACE
|
||||
|
@ -22,6 +22,7 @@ config C6X
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select MODULES_USE_ELF_RELA
|
||||
select MMU_GATHER_NO_RANGE if MMU
|
||||
select SET_FS
|
||||
|
||||
config MMU
|
||||
def_bool n
|
||||
|
@ -78,6 +78,7 @@ config CSKY
|
||||
select PCI_DOMAINS_GENERIC if PCI
|
||||
select PCI_SYSCALL if PCI
|
||||
select PCI_MSI if PCI
|
||||
select SET_FS
|
||||
|
||||
config LOCKDEP_SUPPORT
|
||||
def_bool y
|
||||
|
@ -25,6 +25,7 @@ config H8300
|
||||
select HAVE_ARCH_KGDB
|
||||
select HAVE_ARCH_HASH
|
||||
select CPU_NO_EFFICIENT_FFS
|
||||
select SET_FS
|
||||
select UACCESS_MEMCPY
|
||||
|
||||
config CPU_BIG_ENDIAN
|
||||
|
@ -31,6 +31,7 @@ config HEXAGON
|
||||
select GENERIC_CLOCKEVENTS_BROADCAST
|
||||
select MODULES_USE_ELF_RELA
|
||||
select GENERIC_CPU_DEVICES
|
||||
select SET_FS
|
||||
help
|
||||
Qualcomm Hexagon is a processor architecture designed for high
|
||||
performance and low power across a wide variety of applications.
|
||||
|
@ -56,6 +56,7 @@ config IA64
|
||||
select NEED_SG_DMA_LENGTH
|
||||
select NUMA if !FLATMEM
|
||||
select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
|
||||
select SET_FS
|
||||
default y
|
||||
help
|
||||
The Itanium Processor Family is Intel's 64-bit successor to
|
||||
|
@ -31,6 +31,7 @@ config M68K
|
||||
select NO_DMA if !MMU && !COLDFIRE
|
||||
select OLD_SIGACTION
|
||||
select OLD_SIGSUSPEND3
|
||||
select SET_FS
|
||||
select UACCESS_MEMCPY if !MMU
|
||||
select VIRT_TO_BUS
|
||||
|
||||
|
@ -47,6 +47,7 @@ config MICROBLAZE
|
||||
select CPU_NO_EFFICIENT_FFS
|
||||
select MMU_GATHER_NO_RANGE if MMU
|
||||
select SPARSE_IRQ
|
||||
select SET_FS
|
||||
|
||||
# Endianness selection
|
||||
choice
|
||||
|
@ -88,6 +88,7 @@ config MIPS
|
||||
select PERF_USE_VMALLOC
|
||||
select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
|
||||
select RTC_LIB
|
||||
select SET_FS
|
||||
select SYSCTL_EXCEPTION_TRACE
|
||||
select VIRT_TO_BUS
|
||||
|
||||
|
@ -48,6 +48,7 @@ config NDS32
|
||||
select HAVE_FUNCTION_GRAPH_TRACER
|
||||
select HAVE_FTRACE_MCOUNT_RECORD
|
||||
select HAVE_DYNAMIC_FTRACE
|
||||
select SET_FS
|
||||
help
|
||||
Andes(nds32) Linux support.
|
||||
|
||||
|
@ -27,6 +27,7 @@ config NIOS2
|
||||
select USB_ARCH_HAS_HCD if USB_SUPPORT
|
||||
select CPU_NO_EFFICIENT_FFS
|
||||
select MMU_GATHER_NO_RANGE if MMU
|
||||
select SET_FS
|
||||
|
||||
config GENERIC_CSUM
|
||||
def_bool y
|
||||
|
@ -39,6 +39,7 @@ config OPENRISC
|
||||
select ARCH_WANT_FRAME_POINTERS
|
||||
select GENERIC_IRQ_MULTI_HANDLER
|
||||
select MMU_GATHER_NO_RANGE if MMU
|
||||
select SET_FS
|
||||
|
||||
config CPU_BIG_ENDIAN
|
||||
def_bool y
|
||||
|
@ -63,6 +63,7 @@ config PARISC
|
||||
select HAVE_FTRACE_MCOUNT_RECORD if HAVE_DYNAMIC_FTRACE
|
||||
select HAVE_KPROBES_ON_FTRACE
|
||||
select HAVE_DYNAMIC_FTRACE_WITH_REGS
|
||||
select SET_FS
|
||||
|
||||
help
|
||||
The PA-RISC microprocessor is designed by Hewlett-Packard and used
|
||||
|
@ -253,6 +253,7 @@ config PPC
|
||||
select PCI_SYSCALL if PCI
|
||||
select PPC_DAWR if PPC64
|
||||
select RTC_LIB
|
||||
select SET_FS
|
||||
select SPARSE_IRQ
|
||||
select SYSCTL_EXCEPTION_TRACE
|
||||
select THREAD_INFO_IN_TASK
|
||||
|
@ -88,6 +88,7 @@ config RISCV
|
||||
select SPARSE_IRQ
|
||||
select SYSCTL_EXCEPTION_TRACE
|
||||
select THREAD_INFO_IN_TASK
|
||||
select SET_FS
|
||||
|
||||
config ARCH_MMAP_RND_BITS_MIN
|
||||
default 18 if 64BIT
|
||||
|
@ -191,6 +191,7 @@ config S390
|
||||
select PCI_DOMAINS if PCI
|
||||
select PCI_MSI if PCI
|
||||
select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
|
||||
select SET_FS
|
||||
select SPARSE_IRQ
|
||||
select SYSCTL_EXCEPTION_TRACE
|
||||
select THREAD_INFO_IN_TASK
|
||||
|
@ -71,6 +71,7 @@ config SUPERH
|
||||
select PERF_EVENTS
|
||||
select PERF_USE_VMALLOC
|
||||
select RTC_LIB
|
||||
select SET_FS
|
||||
select SPARSE_IRQ
|
||||
help
|
||||
The SuperH is a RISC processor targeted for use in embedded systems
|
||||
|
@ -51,6 +51,7 @@ config SPARC
|
||||
select LOCKDEP_SMALL if LOCKDEP
|
||||
select NEED_DMA_MAP_STATE
|
||||
select NEED_SG_DMA_LENGTH
|
||||
select SET_FS
|
||||
|
||||
config SPARC32
|
||||
def_bool !64BIT
|
||||
|
@ -19,6 +19,7 @@ config UML
|
||||
select GENERIC_CPU_DEVICES
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_GCC_PLUGINS
|
||||
select SET_FS
|
||||
select TTY # Needed for line.c
|
||||
|
||||
config MMU
|
||||
|
@ -240,6 +240,7 @@ config X86
|
||||
select HAVE_ARCH_KCSAN if X86_64
|
||||
select X86_FEATURE_NAMES if PROC_FS
|
||||
select PROC_PID_ARCH_STATUS if PROC_FS
|
||||
select SET_FS
|
||||
imply IMA_SECURE_AND_OR_TRUSTED_BOOT if EFI
|
||||
|
||||
config INSTRUCTION_DECODER
|
||||
|
@ -41,6 +41,7 @@ config XTENSA
|
||||
select IRQ_DOMAIN
|
||||
select MODULES_USE_ELF_RELA
|
||||
select PERF_USE_VMALLOC
|
||||
select SET_FS
|
||||
select VIRT_TO_BUS
|
||||
help
|
||||
Xtensa processors are 32-bit RISC machines designed by Tensilica
|
||||
|
@ -10,6 +10,7 @@
|
||||
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
#ifdef CONFIG_SET_FS
|
||||
/*
|
||||
* Force the uaccess routines to be wired up for actual userspace access,
|
||||
* overriding any possible set_fs(KERNEL_DS) still lingering around. Undone
|
||||
@ -27,6 +28,23 @@ static inline void force_uaccess_end(mm_segment_t oldfs)
|
||||
{
|
||||
set_fs(oldfs);
|
||||
}
|
||||
#else /* CONFIG_SET_FS */
|
||||
typedef struct {
|
||||
/* empty dummy */
|
||||
} mm_segment_t;
|
||||
|
||||
#define uaccess_kernel() (false)
|
||||
#define user_addr_max() (TASK_SIZE_MAX)
|
||||
|
||||
static inline mm_segment_t force_uaccess_begin(void)
|
||||
{
|
||||
return (mm_segment_t) { };
|
||||
}
|
||||
|
||||
static inline void force_uaccess_end(mm_segment_t oldfs)
|
||||
{
|
||||
}
|
||||
#endif /* CONFIG_SET_FS */
|
||||
|
||||
/*
|
||||
* Architectures should provide two primitives (raw_copy_{to,from}_user())
|
||||
|
Loading…
Reference in New Issue
Block a user