diff options
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/ia32/ia32_aout.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c index 2a4d073d2cf1..435d2a5323da 100644 --- a/arch/x86/ia32/ia32_aout.c +++ b/arch/x86/ia32/ia32_aout.c | |||
@@ -308,15 +308,17 @@ static int load_aout_binary(struct linux_binprm *bprm, struct pt_regs *regs) | |||
308 | if (retval) | 308 | if (retval) |
309 | return retval; | 309 | return retval; |
310 | 310 | ||
311 | regs->cs = __USER32_CS; | ||
312 | regs->r8 = regs->r9 = regs->r10 = regs->r11 = regs->r12 = | ||
313 | regs->r13 = regs->r14 = regs->r15 = 0; | ||
314 | |||
315 | /* OK, This is the point of no return */ | 311 | /* OK, This is the point of no return */ |
316 | set_personality(PER_LINUX); | 312 | set_personality(PER_LINUX); |
317 | set_thread_flag(TIF_IA32); | 313 | set_thread_flag(TIF_IA32); |
318 | clear_thread_flag(TIF_ABI_PENDING); | 314 | clear_thread_flag(TIF_ABI_PENDING); |
319 | 315 | ||
316 | setup_new_exec(bprm); | ||
317 | |||
318 | regs->cs = __USER32_CS; | ||
319 | regs->r8 = regs->r9 = regs->r10 = regs->r11 = regs->r12 = | ||
320 | regs->r13 = regs->r14 = regs->r15 = 0; | ||
321 | |||
320 | current->mm->end_code = ex.a_text + | 322 | current->mm->end_code = ex.a_text + |
321 | (current->mm->start_code = N_TXTADDR(ex)); | 323 | (current->mm->start_code = N_TXTADDR(ex)); |
322 | current->mm->end_data = ex.a_data + | 324 | current->mm->end_data = ex.a_data + |