diff options
Diffstat (limited to 'include/asm-i386/processor.h')
-rw-r--r-- | include/asm-i386/processor.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/asm-i386/processor.h b/include/asm-i386/processor.h index a9f2041c7c87..f73cf836e649 100644 --- a/include/asm-i386/processor.h +++ b/include/asm-i386/processor.h | |||
@@ -473,6 +473,7 @@ struct thread_struct { | |||
473 | .vm86_info = NULL, \ | 473 | .vm86_info = NULL, \ |
474 | .sysenter_cs = __KERNEL_CS, \ | 474 | .sysenter_cs = __KERNEL_CS, \ |
475 | .io_bitmap_ptr = NULL, \ | 475 | .io_bitmap_ptr = NULL, \ |
476 | .gs = __KERNEL_PDA, \ | ||
476 | } | 477 | } |
477 | 478 | ||
478 | /* | 479 | /* |
@@ -500,7 +501,8 @@ static inline void load_esp0(struct tss_struct *tss, struct thread_struct *threa | |||
500 | } | 501 | } |
501 | 502 | ||
502 | #define start_thread(regs, new_eip, new_esp) do { \ | 503 | #define start_thread(regs, new_eip, new_esp) do { \ |
503 | __asm__("movl %0,%%fs ; movl %0,%%gs": :"r" (0)); \ | 504 | __asm__("movl %0,%%fs": :"r" (0)); \ |
505 | regs->xgs = 0; \ | ||
504 | set_fs(USER_DS); \ | 506 | set_fs(USER_DS); \ |
505 | regs->xds = __USER_DS; \ | 507 | regs->xds = __USER_DS; \ |
506 | regs->xes = __USER_DS; \ | 508 | regs->xes = __USER_DS; \ |