Just always compile the code when the kernel is modular. Convert load_nls to use try_then_request_module to tidy up the code. Signed-off-by: Johannes Berg --- v2: fix "unused variable" warning pointed out by Adrian Bunk by just using try_then_request_module() for load_nls(). fs/char_dev.c | 3 --- fs/exec.c | 9 +++------ fs/nls/nls_base.c | 23 +++-------------------- 3 files changed, 6 insertions(+), 29 deletions(-) --- everything.orig/fs/char_dev.c 2008-07-08 22:09:18.000000000 +0200 +++ everything/fs/char_dev.c 2008-07-08 22:10:41.000000000 +0200 @@ -22,9 +22,6 @@ #include #include -#ifdef CONFIG_KMOD -#include -#endif #include "internal.h" /* --- everything.orig/fs/exec.c 2008-07-08 22:09:18.000000000 +0200 +++ everything/fs/exec.c 2008-07-08 22:10:41.000000000 +0200 @@ -51,15 +51,12 @@ #include #include #include +#include #include #include #include -#ifdef CONFIG_KMOD -#include -#endif - #ifdef __alpha__ /* for /sbin/loader handling in search_binary_handler() */ #include @@ -1239,8 +1236,8 @@ int search_binary_handler(struct linux_b read_unlock(&binfmt_lock); if (retval != -ENOEXEC || bprm->mm == NULL) { break; -#ifdef CONFIG_KMOD - }else{ +#ifdef CONFIG_MODULES + } else { #define printable(c) (((c)=='\t') || ((c)=='\n') || (0x20<=(c) && (c)<=0x7e)) if (printable(bprm->buf[0]) && printable(bprm->buf[1]) && --- everything.orig/fs/nls/nls_base.c 2008-07-08 22:09:18.000000000 +0200 +++ everything/fs/nls/nls_base.c 2008-07-08 22:11:57.000000000 +0200 @@ -13,9 +13,7 @@ #include #include #include -#ifdef CONFIG_KMOD #include -#endif #include static struct nls_table default_table; @@ -215,24 +213,9 @@ static struct nls_table *find_nls(char * struct nls_table *load_nls(char *charset) { - struct nls_table *nls; -#ifdef CONFIG_KMOD - int ret; -#endif - - nls = find_nls(charset); - if (nls) - return nls; - -#ifdef CONFIG_KMOD - ret = request_module("nls_%s", charset); - if (ret != 0) { - printk("Unable to load NLS charset %s\n", charset); - return NULL; - } - nls = find_nls(charset); -#endif - return nls; + return try_then_request_module( + find_nls(charset), + "nls_%s", charset); } void unload_nls(struct nls_table *nls) -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/