diff options
Diffstat (limited to 'kernel/kmod.c')
| -rw-r--r-- | kernel/kmod.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/kmod.c b/kernel/kmod.c index 1d32defa38ab..5c470c57fb57 100644 --- a/kernel/kmod.c +++ b/kernel/kmod.c | |||
| @@ -197,11 +197,12 @@ static void __call_usermodehelper(void *data) | |||
| 197 | { | 197 | { |
| 198 | struct subprocess_info *sub_info = data; | 198 | struct subprocess_info *sub_info = data; |
| 199 | pid_t pid; | 199 | pid_t pid; |
| 200 | int wait = sub_info->wait; | ||
| 200 | 201 | ||
| 201 | /* CLONE_VFORK: wait until the usermode helper has execve'd | 202 | /* CLONE_VFORK: wait until the usermode helper has execve'd |
| 202 | * successfully We need the data structures to stay around | 203 | * successfully We need the data structures to stay around |
| 203 | * until that is done. */ | 204 | * until that is done. */ |
| 204 | if (sub_info->wait) | 205 | if (wait) |
| 205 | pid = kernel_thread(wait_for_helper, sub_info, | 206 | pid = kernel_thread(wait_for_helper, sub_info, |
| 206 | CLONE_FS | CLONE_FILES | SIGCHLD); | 207 | CLONE_FS | CLONE_FILES | SIGCHLD); |
| 207 | else | 208 | else |
| @@ -211,7 +212,7 @@ static void __call_usermodehelper(void *data) | |||
| 211 | if (pid < 0) { | 212 | if (pid < 0) { |
| 212 | sub_info->retval = pid; | 213 | sub_info->retval = pid; |
| 213 | complete(sub_info->complete); | 214 | complete(sub_info->complete); |
| 214 | } else if (!sub_info->wait) | 215 | } else if (!wait) |
| 215 | complete(sub_info->complete); | 216 | complete(sub_info->complete); |
| 216 | } | 217 | } |
| 217 | 218 | ||
