]> err.no Git - linux-2.6/blobdiff - fs/binfmt_elf.c
[TCP]: Optimize check in port-allocation code.
[linux-2.6] / fs / binfmt_elf.c
index 76ec9d8939ffe570c64c8b4262a0666bd78b6226..ce9423bb2de319d095a3ac5d8e762dcd6d8b3913 100644 (file)
@@ -782,14 +782,6 @@ static int load_elf_binary(struct linux_binprm * bprm, struct pt_regs * regs)
                goto out_free_dentry;
        }
        
-#ifdef ARCH_HAS_SETUP_ADDITIONAL_PAGES
-       retval = arch_setup_additional_pages(bprm, executable_stack);
-       if (retval < 0) {
-               send_sig(SIGKILL, current, 0);
-               goto out_free_dentry;
-       }
-#endif /* ARCH_HAS_SETUP_ADDITIONAL_PAGES */
-
        current->mm->start_stack = bprm->p;
 
        /* Now we do a little grungy work by mmaping the ELF image into
@@ -949,6 +941,14 @@ static int load_elf_binary(struct linux_binprm * bprm, struct pt_regs * regs)
 
        set_binfmt(&elf_format);
 
+#ifdef ARCH_HAS_SETUP_ADDITIONAL_PAGES
+       retval = arch_setup_additional_pages(bprm, executable_stack);
+       if (retval < 0) {
+               send_sig(SIGKILL, current, 0);
+               goto out;
+       }
+#endif /* ARCH_HAS_SETUP_ADDITIONAL_PAGES */
+
        compute_creds(bprm);
        current->flags &= ~PF_FORKNOEXEC;
        create_elf_tables(bprm, &loc->elf_ex, (interpreter_type == INTERPRETER_AOUT),