|
@@ -199,6 +199,11 @@ void call_usermodehelper_freeinfo(struct subprocess_info *info)
|
|
|
}
|
|
|
EXPORT_SYMBOL(call_usermodehelper_freeinfo);
|
|
|
|
|
|
+static void umh_complete(struct subprocess_info *sub_info)
|
|
|
+{
|
|
|
+ complete(sub_info->complete);
|
|
|
+}
|
|
|
+
|
|
|
/* Keventd can't block, but this (a child) can. */
|
|
|
static int wait_for_helper(void *data)
|
|
|
{
|
|
@@ -235,7 +240,7 @@ static int wait_for_helper(void *data)
|
|
|
sub_info->retval = ret;
|
|
|
}
|
|
|
|
|
|
- complete(sub_info->complete);
|
|
|
+ umh_complete(sub_info);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -269,7 +274,7 @@ static void __call_usermodehelper(struct work_struct *work)
|
|
|
case UMH_WAIT_EXEC:
|
|
|
if (pid < 0)
|
|
|
sub_info->retval = pid;
|
|
|
- complete(sub_info->complete);
|
|
|
+ umh_complete(sub_info);
|
|
|
}
|
|
|
}
|
|
|
|