aboutsummaryrefslogtreecommitdiff
path: root/arch/um/drivers/slirp_user.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/um/drivers/slirp_user.c')
-rw-r--r--arch/um/drivers/slirp_user.c21
1 files changed, 5 insertions, 16 deletions
diff --git a/arch/um/drivers/slirp_user.c b/arch/um/drivers/slirp_user.c
index 1865089ff41..c999d187abb 100644
--- a/arch/um/drivers/slirp_user.c
+++ b/arch/um/drivers/slirp_user.c
@@ -7,11 +7,9 @@
#include <errno.h>
#include <string.h>
#include <sys/wait.h>
-#include "kern_constants.h"
-#include "net_user.h"
-#include "os.h"
+#include <net_user.h>
+#include <os.h>
#include "slirp.h"
-#include "user.h"
static int slirp_user_init(void *data, void *dev)
{
@@ -79,7 +77,7 @@ out:
static void slirp_close(int fd, void *data)
{
struct slirp_data *pri = data;
- int status,err;
+ int err;
close(fd);
close(pri->slave);
@@ -98,18 +96,9 @@ static void slirp_close(int fd, void *data)
"(%d)\n", pri->pid, errno);
}
#endif
-
- CATCH_EINTR(err = waitpid(pri->pid, &status, WNOHANG));
- if (err < 0) {
- printk(UM_KERN_ERR "slirp_close: waitpid returned %d\n", errno);
- return;
- }
-
- if (err == 0) {
- printk(UM_KERN_ERR "slirp_close: process %d has not exited\n",
- pri->pid);
+ err = helper_wait(pri->pid);
+ if (err < 0)
return;
- }
pri->pid = -1;
}