x86: remove address space overrides using set_fs()
Stop providing the possibility to override the address space using set_fs() now that there is no need for that any more. To properly handle the TASK_SIZE_MAX checking for 4 vs 5-level page tables on x86 a new alternative is introduced, which just like the one in entry_64.S has to use the hardcoded virtual address bits to escape the fact that TASK_SIZE_MAX isn't actually a constant when 5-level page tables are enabled. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:

committed by
Al Viro

parent
a1d826d475
commit
47058bb54b
@@ -482,10 +482,6 @@ extern unsigned int fpu_user_xstate_size;
|
||||
|
||||
struct perf_event;
|
||||
|
||||
typedef struct {
|
||||
unsigned long seg;
|
||||
} mm_segment_t;
|
||||
|
||||
struct thread_struct {
|
||||
/* Cached TLS descriptors: */
|
||||
struct desc_struct tls_array[GDT_ENTRY_TLS_ENTRIES];
|
||||
@@ -538,8 +534,6 @@ struct thread_struct {
|
||||
*/
|
||||
unsigned long iopl_emul;
|
||||
|
||||
mm_segment_t addr_limit;
|
||||
|
||||
unsigned int sig_on_uaccess_err:1;
|
||||
|
||||
/* Floating point and extended processor state */
|
||||
@@ -785,15 +779,12 @@ static inline void spin_lock_prefetch(const void *x)
|
||||
#define INIT_THREAD { \
|
||||
.sp0 = TOP_OF_INIT_STACK, \
|
||||
.sysenter_cs = __KERNEL_CS, \
|
||||
.addr_limit = KERNEL_DS, \
|
||||
}
|
||||
|
||||
#define KSTK_ESP(task) (task_pt_regs(task)->sp)
|
||||
|
||||
#else
|
||||
#define INIT_THREAD { \
|
||||
.addr_limit = KERNEL_DS, \
|
||||
}
|
||||
#define INIT_THREAD { }
|
||||
|
||||
extern unsigned long KSTK_ESP(struct task_struct *task);
|
||||
|
||||
|
Reference in New Issue
Block a user