diff options
Diffstat (limited to 'arch/um/drivers/slip_user.c')
-rw-r--r-- | arch/um/drivers/slip_user.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/arch/um/drivers/slip_user.c b/arch/um/drivers/slip_user.c index 5f06204d6871..b8711e50da80 100644 --- a/arch/um/drivers/slip_user.c +++ b/arch/um/drivers/slip_user.c | |||
@@ -77,7 +77,7 @@ static int slip_tramp(char **argv, int fd) | |||
77 | { | 77 | { |
78 | struct slip_pre_exec_data pe_data; | 78 | struct slip_pre_exec_data pe_data; |
79 | char *output; | 79 | char *output; |
80 | int status, pid, fds[2], err, output_len; | 80 | int pid, fds[2], err, output_len; |
81 | 81 | ||
82 | err = os_pipe(fds, 1, 0); | 82 | err = os_pipe(fds, 1, 0); |
83 | if (err < 0) { | 83 | if (err < 0) { |
@@ -109,15 +109,7 @@ static int slip_tramp(char **argv, int fd) | |||
109 | read_output(fds[0], output, output_len); | 109 | read_output(fds[0], output, output_len); |
110 | printk("%s", output); | 110 | printk("%s", output); |
111 | 111 | ||
112 | CATCH_EINTR(err = waitpid(pid, &status, 0)); | 112 | err = helper_wait(pid, 0, argv[0]); |
113 | if (err < 0) | ||
114 | err = errno; | ||
115 | else if (!WIFEXITED(status) || (WEXITSTATUS(status) != 0)) { | ||
116 | printk(UM_KERN_ERR "'%s' didn't exit with status 0\n", argv[0]); | ||
117 | err = -EINVAL; | ||
118 | } | ||
119 | else err = 0; | ||
120 | |||
121 | close(fds[0]); | 113 | close(fds[0]); |
122 | 114 | ||
123 | out_free: | 115 | out_free: |