exec: do not retry load_binary method if CONFIG_MODULES=n
authorTetsuo Handa <[email protected]>
Tue, 26 Jul 2011 23:08:42 +0000 (16:08 -0700)
committerLinus Torvalds <[email protected]>
Tue, 26 Jul 2011 23:49:44 +0000 (16:49 -0700)
If CONFIG_MODULES=n, it makes no sense to retry the list of binary formats
handler because the list will not be modified by request_module().

Signed-off-by: Tetsuo Handa <[email protected]>
Cc: Richard Weinberger <[email protected]>
Cc: Al Viro <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
fs/exec.c

index e6770a526f349aaad7ad55c0081a867be0c6ac0c..0e8e59939d09a72817c114a69ce40973331df31e 100644 (file)
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1430,9 +1430,9 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs)
                        }
                }
                read_unlock(&binfmt_lock);
+#ifdef CONFIG_MODULES
                if (retval != -ENOEXEC || bprm->mm == NULL) {
                        break;
-#ifdef CONFIG_MODULES
                } else {
 #define printable(c) (((c)=='\t') || ((c)=='\n') || (0x20<=(c) && (c)<=0x7e))
                        if (printable(bprm->buf[0]) &&
@@ -1443,8 +1443,10 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs)
                        if (try)
                                break; /* -ENOEXEC */
                        request_module("binfmt-%04x", *(unsigned short *)(&bprm->buf[2]));
-#endif
                }
+#else
+               break;
+#endif
        }
        return retval;
 }