aboutsummaryrefslogtreecommitdiffstats
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.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/arch/um/drivers/slirp_user.c b/arch/um/drivers/slirp_user.c
index 1865089ff41a..89c1be225fda 100644
--- a/arch/um/drivers/slirp_user.c
+++ b/arch/um/drivers/slirp_user.c
@@ -79,7 +79,7 @@ out:
79static void slirp_close(int fd, void *data) 79static void slirp_close(int fd, void *data)
80{ 80{
81 struct slirp_data *pri = data; 81 struct slirp_data *pri = data;
82 int status,err; 82 int err;
83 83
84 close(fd); 84 close(fd);
85 close(pri->slave); 85 close(pri->slave);
@@ -98,18 +98,9 @@ static void slirp_close(int fd, void *data)
98 "(%d)\n", pri->pid, errno); 98 "(%d)\n", pri->pid, errno);
99 } 99 }
100#endif 100#endif
101 101 err = helper_wait(pri->pid, 1, "slirp_close");
102 CATCH_EINTR(err = waitpid(pri->pid, &status, WNOHANG)); 102 if (err < 0)
103 if (err < 0) {
104 printk(UM_KERN_ERR "slirp_close: waitpid returned %d\n", errno);
105 return;
106 }
107
108 if (err == 0) {
109 printk(UM_KERN_ERR "slirp_close: process %d has not exited\n",
110 pri->pid);
111 return; 103 return;
112 }
113 104
114 pri->pid = -1; 105 pri->pid = -1;
115} 106}