exec: do not retry load_binary method if CONFIG_MODULES=n

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 <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Richard Weinberger <richard@nod.at>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Tetsuo Handa 2011-07-26 16:08:42 -07:00 committed by Linus Torvalds
parent 912193521b
commit b4edf8bd06
1 changed files with 4 additions and 2 deletions

View File

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