diff options
Diffstat (limited to 'kernel/kmod.c')
-rw-r--r-- | kernel/kmod.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/kernel/kmod.c b/kernel/kmod.c index a0a88543934e..8ea25944ce33 100644 --- a/kernel/kmod.c +++ b/kernel/kmod.c | |||
@@ -199,6 +199,11 @@ void call_usermodehelper_freeinfo(struct subprocess_info *info) | |||
199 | } | 199 | } |
200 | EXPORT_SYMBOL(call_usermodehelper_freeinfo); | 200 | EXPORT_SYMBOL(call_usermodehelper_freeinfo); |
201 | 201 | ||
202 | static void umh_complete(struct subprocess_info *sub_info) | ||
203 | { | ||
204 | complete(sub_info->complete); | ||
205 | } | ||
206 | |||
202 | /* Keventd can't block, but this (a child) can. */ | 207 | /* Keventd can't block, but this (a child) can. */ |
203 | static int wait_for_helper(void *data) | 208 | static int wait_for_helper(void *data) |
204 | { | 209 | { |
@@ -235,7 +240,7 @@ static int wait_for_helper(void *data) | |||
235 | sub_info->retval = ret; | 240 | sub_info->retval = ret; |
236 | } | 241 | } |
237 | 242 | ||
238 | complete(sub_info->complete); | 243 | umh_complete(sub_info); |
239 | return 0; | 244 | return 0; |
240 | } | 245 | } |
241 | 246 | ||
@@ -269,7 +274,7 @@ static void __call_usermodehelper(struct work_struct *work) | |||
269 | case UMH_WAIT_EXEC: | 274 | case UMH_WAIT_EXEC: |
270 | if (pid < 0) | 275 | if (pid < 0) |
271 | sub_info->retval = pid; | 276 | sub_info->retval = pid; |
272 | complete(sub_info->complete); | 277 | umh_complete(sub_info); |
273 | } | 278 | } |
274 | } | 279 | } |
275 | 280 | ||