aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/char_dev.c3
-rw-r--r--fs/exec.c9
-rw-r--r--fs/nls/nls_base.c21
3 files changed, 4 insertions, 29 deletions
diff --git a/fs/char_dev.c b/fs/char_dev.c
index 3cb7cda3d780..262fa10e213d 100644
--- a/fs/char_dev.c
+++ b/fs/char_dev.c
@@ -22,9 +22,6 @@
22#include <linux/mutex.h> 22#include <linux/mutex.h>
23#include <linux/backing-dev.h> 23#include <linux/backing-dev.h>
24 24
25#ifdef CONFIG_KMOD
26#include <linux/kmod.h>
27#endif
28#include "internal.h" 25#include "internal.h"
29 26
30/* 27/*
diff --git a/fs/exec.c b/fs/exec.c
index cecee501ce78..9811679b0695 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -50,15 +50,12 @@
50#include <linux/cn_proc.h> 50#include <linux/cn_proc.h>
51#include <linux/audit.h> 51#include <linux/audit.h>
52#include <linux/tracehook.h> 52#include <linux/tracehook.h>
53#include <linux/kmod.h>
53 54
54#include <asm/uaccess.h> 55#include <asm/uaccess.h>
55#include <asm/mmu_context.h> 56#include <asm/mmu_context.h>
56#include <asm/tlb.h> 57#include <asm/tlb.h>
57 58
58#ifdef CONFIG_KMOD
59#include <linux/kmod.h>
60#endif
61
62#ifdef __alpha__ 59#ifdef __alpha__
63/* for /sbin/loader handling in search_binary_handler() */ 60/* for /sbin/loader handling in search_binary_handler() */
64#include <linux/a.out.h> 61#include <linux/a.out.h>
@@ -1247,8 +1244,8 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs)
1247 read_unlock(&binfmt_lock); 1244 read_unlock(&binfmt_lock);
1248 if (retval != -ENOEXEC || bprm->mm == NULL) { 1245 if (retval != -ENOEXEC || bprm->mm == NULL) {
1249 break; 1246 break;
1250#ifdef CONFIG_KMOD 1247#ifdef CONFIG_MODULES
1251 }else{ 1248 } else {
1252#define printable(c) (((c)=='\t') || ((c)=='\n') || (0x20<=(c) && (c)<=0x7e)) 1249#define printable(c) (((c)=='\t') || ((c)=='\n') || (0x20<=(c) && (c)<=0x7e))
1253 if (printable(bprm->buf[0]) && 1250 if (printable(bprm->buf[0]) &&
1254 printable(bprm->buf[1]) && 1251 printable(bprm->buf[1]) &&
diff --git a/fs/nls/nls_base.c b/fs/nls/nls_base.c
index 64965e1c21c4..9b0efdad8910 100644
--- a/fs/nls/nls_base.c
+++ b/fs/nls/nls_base.c
@@ -13,9 +13,7 @@
13#include <linux/nls.h> 13#include <linux/nls.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/errno.h> 15#include <linux/errno.h>
16#ifdef CONFIG_KMOD
17#include <linux/kmod.h> 16#include <linux/kmod.h>
18#endif
19#include <linux/spinlock.h> 17#include <linux/spinlock.h>
20 18
21static struct nls_table default_table; 19static struct nls_table default_table;
@@ -215,24 +213,7 @@ static struct nls_table *find_nls(char *charset)
215 213
216struct nls_table *load_nls(char *charset) 214struct nls_table *load_nls(char *charset)
217{ 215{
218 struct nls_table *nls; 216 return try_then_request_module(find_nls(charset), "nls_%s", charset);
219#ifdef CONFIG_KMOD
220 int ret;
221#endif
222
223 nls = find_nls(charset);
224 if (nls)
225 return nls;
226
227#ifdef CONFIG_KMOD
228 ret = request_module("nls_%s", charset);
229 if (ret != 0) {
230 printk("Unable to load NLS charset %s\n", charset);
231 return NULL;
232 }
233 nls = find_nls(charset);
234#endif
235 return nls;
236} 217}
237 218
238void unload_nls(struct nls_table *nls) 219void unload_nls(struct nls_table *nls)