aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/os-Linux/helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/um/os-Linux/helper.c')
-rw-r--r--arch/um/os-Linux/helper.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/um/os-Linux/helper.c b/arch/um/os-Linux/helper.c
index 8a4c9e47326c..97bed16bf4c7 100644
--- a/arch/um/os-Linux/helper.c
+++ b/arch/um/os-Linux/helper.c
@@ -36,7 +36,7 @@ static int helper_child(void *arg)
36 errval = execvp_noalloc(data->buf, argv[0], argv); 36 errval = execvp_noalloc(data->buf, argv[0], argv);
37 printk("helper_child - execvp of '%s' failed - errno = %d\n", argv[0], 37 printk("helper_child - execvp of '%s' failed - errno = %d\n", argv[0],
38 -errval); 38 -errval);
39 os_write_file(data->fd, &errval, sizeof(errval)); 39 write(data->fd, &errval, sizeof(errval));
40 kill(os_getpid(), SIGKILL); 40 kill(os_getpid(), SIGKILL);
41 return 0; 41 return 0;
42} 42}
@@ -92,11 +92,12 @@ int run_helper(void (*pre_exec)(void *), void *pre_data, char **argv,
92 * Read the errno value from the child, if the exec failed, or get 0 if 92 * Read the errno value from the child, if the exec failed, or get 0 if
93 * the exec succeeded because the pipe fd was set as close-on-exec. 93 * the exec succeeded because the pipe fd was set as close-on-exec.
94 */ 94 */
95 n = os_read_file(fds[0], &ret, sizeof(ret)); 95 n = read(fds[0], &ret, sizeof(ret));
96 if (n == 0) { 96 if (n == 0) {
97 ret = pid; 97 ret = pid;
98 } else { 98 } else {
99 if (n < 0) { 99 if (n < 0) {
100 n = -errno;
100 printk("run_helper : read on pipe failed, ret = %d\n", 101 printk("run_helper : read on pipe failed, ret = %d\n",
101 -n); 102 -n);
102 ret = n; 103 ret = n;