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.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/um/os-Linux/helper.c b/arch/um/os-Linux/helper.c
index d81af7b858..7a72dbb61b 100644
--- a/arch/um/os-Linux/helper.c
+++ b/arch/um/os-Linux/helper.c
@@ -11,6 +11,7 @@
11#include <limits.h> 11#include <limits.h>
12#include <sys/signal.h> 12#include <sys/signal.h>
13#include <sys/wait.h> 13#include <sys/wait.h>
14#include <sys/socket.h>
14#include "user.h" 15#include "user.h"
15#include "kern_util.h" 16#include "kern_util.h"
16#include "os.h" 17#include "os.h"
@@ -54,13 +55,14 @@ int run_helper(void (*pre_exec)(void *), void *pre_data, char **argv)
54 if (stack == 0) 55 if (stack == 0)
55 return -ENOMEM; 56 return -ENOMEM;
56 57
57 ret = os_pipe(fds, 1, 0); 58 ret = socketpair(AF_UNIX, SOCK_STREAM, 0, fds);
58 if (ret < 0) { 59 if (ret < 0) {
59 printk("run_helper : pipe failed, ret = %d\n", -ret); 60 ret = -errno;
61 printk("run_helper : pipe failed, errno = %d\n", errno);
60 goto out_free; 62 goto out_free;
61 } 63 }
62 64
63 ret = os_set_exec_close(fds[1], 1); 65 ret = os_set_exec_close(fds[1]);
64 if (ret < 0) { 66 if (ret < 0) {
65 printk("run_helper : setting FD_CLOEXEC failed, ret = %d\n", 67 printk("run_helper : setting FD_CLOEXEC failed, ret = %d\n",
66 -ret); 68 -ret);