diff options
-rw-r--r-- | arch/s390/kernel/process.c | 2 | ||||
-rw-r--r-- | include/asm-s390/processor.h | 14 |
2 files changed, 3 insertions, 13 deletions
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c index cc7c4ba0774d..96492cf2d491 100644 --- a/arch/s390/kernel/process.c +++ b/arch/s390/kernel/process.c | |||
@@ -270,14 +270,12 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long new_stackp, | |||
270 | save_fp_regs(¤t->thread.fp_regs); | 270 | save_fp_regs(¤t->thread.fp_regs); |
271 | memcpy(&p->thread.fp_regs, ¤t->thread.fp_regs, | 271 | memcpy(&p->thread.fp_regs, ¤t->thread.fp_regs, |
272 | sizeof(s390_fp_regs)); | 272 | sizeof(s390_fp_regs)); |
273 | p->thread.user_seg = __pa((unsigned long) p->mm->pgd) | _SEGMENT_TABLE; | ||
274 | /* Set a new TLS ? */ | 273 | /* Set a new TLS ? */ |
275 | if (clone_flags & CLONE_SETTLS) | 274 | if (clone_flags & CLONE_SETTLS) |
276 | p->thread.acrs[0] = regs->gprs[6]; | 275 | p->thread.acrs[0] = regs->gprs[6]; |
277 | #else /* CONFIG_64BIT */ | 276 | #else /* CONFIG_64BIT */ |
278 | /* Save the fpu registers to new thread structure. */ | 277 | /* Save the fpu registers to new thread structure. */ |
279 | save_fp_regs(&p->thread.fp_regs); | 278 | save_fp_regs(&p->thread.fp_regs); |
280 | p->thread.user_seg = __pa((unsigned long) p->mm->pgd) | _REGION_TABLE; | ||
281 | /* Set a new TLS ? */ | 279 | /* Set a new TLS ? */ |
282 | if (clone_flags & CLONE_SETTLS) { | 280 | if (clone_flags & CLONE_SETTLS) { |
283 | if (test_thread_flag(TIF_31BIT)) { | 281 | if (test_thread_flag(TIF_31BIT)) { |
diff --git a/include/asm-s390/processor.h b/include/asm-s390/processor.h index 3b972d4c6b29..81efccc63942 100644 --- a/include/asm-s390/processor.h +++ b/include/asm-s390/processor.h | |||
@@ -93,7 +93,6 @@ struct thread_struct { | |||
93 | s390_fp_regs fp_regs; | 93 | s390_fp_regs fp_regs; |
94 | unsigned int acrs[NUM_ACRS]; | 94 | unsigned int acrs[NUM_ACRS]; |
95 | unsigned long ksp; /* kernel stack pointer */ | 95 | unsigned long ksp; /* kernel stack pointer */ |
96 | unsigned long user_seg; /* HSTD */ | ||
97 | mm_segment_t mm_segment; | 96 | mm_segment_t mm_segment; |
98 | unsigned long prot_addr; /* address of protection-excep. */ | 97 | unsigned long prot_addr; /* address of protection-excep. */ |
99 | unsigned int error_code; /* error-code of last prog-excep. */ | 98 | unsigned int error_code; /* error-code of last prog-excep. */ |
@@ -134,16 +133,9 @@ struct stack_frame { | |||
134 | # define __SWAPPER_PG_DIR __pa(&swapper_pg_dir[0]) + _REGION_TABLE | 133 | # define __SWAPPER_PG_DIR __pa(&swapper_pg_dir[0]) + _REGION_TABLE |
135 | #endif /* __s390x__ */ | 134 | #endif /* __s390x__ */ |
136 | 135 | ||
137 | #define INIT_THREAD {{0,{{0},{0},{0},{0},{0},{0},{0},{0},{0},{0}, \ | 136 | #define INIT_THREAD { \ |
138 | {0},{0},{0},{0},{0},{0}}}, \ | 137 | .ksp = sizeof(init_stack) + (unsigned long) &init_stack, \ |
139 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, \ | 138 | } |
140 | sizeof(init_stack) + (unsigned long) &init_stack, \ | ||
141 | __SWAPPER_PG_DIR, \ | ||
142 | {0}, \ | ||
143 | 0,0,0, \ | ||
144 | (per_struct) {{{{0,}}},0,0,0,0,{{0,}}}, \ | ||
145 | 0, 0 \ | ||
146 | } | ||
147 | 139 | ||
148 | /* | 140 | /* |
149 | * Do necessary setup to start up a new thread. | 141 | * Do necessary setup to start up a new thread. |