diff options
Diffstat (limited to 'kernel/kmod.c')
| -rw-r--r-- | kernel/kmod.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/kernel/kmod.c b/kernel/kmod.c index f0c8f545180d..b750675251e5 100644 --- a/kernel/kmod.c +++ b/kernel/kmod.c  | |||
| @@ -50,7 +50,8 @@ static struct workqueue_struct *khelper_wq; | |||
| 50 | char modprobe_path[KMOD_PATH_LEN] = "/sbin/modprobe"; | 50 | char modprobe_path[KMOD_PATH_LEN] = "/sbin/modprobe"; | 
| 51 | 51 | ||
| 52 | /** | 52 | /** | 
| 53 | * request_module - try to load a kernel module | 53 | * __request_module - try to load a kernel module | 
| 54 | * @wait: wait (or not) for the operation to complete | ||
| 54 | * @fmt: printf style format string for the name of the module | 55 | * @fmt: printf style format string for the name of the module | 
| 55 | * @...: arguments as specified in the format string | 56 | * @...: arguments as specified in the format string | 
| 56 | * | 57 | * | 
| @@ -63,7 +64,7 @@ char modprobe_path[KMOD_PATH_LEN] = "/sbin/modprobe"; | |||
| 63 | * If module auto-loading support is disabled then this function | 64 | * If module auto-loading support is disabled then this function | 
| 64 | * becomes a no-operation. | 65 | * becomes a no-operation. | 
| 65 | */ | 66 | */ | 
| 66 | int request_module(const char *fmt, ...) | 67 | int __request_module(bool wait, const char *fmt, ...) | 
| 67 | { | 68 | { | 
| 68 | va_list args; | 69 | va_list args; | 
| 69 | char module_name[MODULE_NAME_LEN]; | 70 | char module_name[MODULE_NAME_LEN]; | 
| @@ -108,11 +109,12 @@ int request_module(const char *fmt, ...) | |||
| 108 | return -ENOMEM; | 109 | return -ENOMEM; | 
| 109 | } | 110 | } | 
| 110 | 111 | ||
| 111 | ret = call_usermodehelper(modprobe_path, argv, envp, 1); | 112 | ret = call_usermodehelper(modprobe_path, argv, envp, | 
| 113 | wait ? UMH_WAIT_PROC : UMH_WAIT_EXEC); | ||
| 112 | atomic_dec(&kmod_concurrent); | 114 | atomic_dec(&kmod_concurrent); | 
| 113 | return ret; | 115 | return ret; | 
| 114 | } | 116 | } | 
| 115 | EXPORT_SYMBOL(request_module); | 117 | EXPORT_SYMBOL(__request_module); | 
| 116 | #endif /* CONFIG_MODULES */ | 118 | #endif /* CONFIG_MODULES */ | 
| 117 | 119 | ||
| 118 | struct subprocess_info { | 120 | struct subprocess_info { | 
