aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/drivers
diff options
context:
space:
mode:
authorJeff Dike <jdike@addtoit.com>2007-07-16 02:38:56 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-16 12:05:38 -0400
commitc43990162fc7f9d2f15a12797fdc6f9c0905f704 (patch)
tree64f8b776c4807da48971f3c24ca157c5e6ab921f /arch/um/drivers
parent42a359e31a0e438b5b978a8f0fecdbd3c86bb033 (diff)
uml: simplify helper stack handling
run_helper and run_helper_thread had arguments which were the same in all callers. run_helper's stack_out was always NULL and run_helper_thread's stack_order was always 0. These are now gone, and the constants folded into the code. Also fixed leaks of the helper stack in the AIO and SIGIO code. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/um/drivers')
-rw-r--r--arch/um/drivers/chan_user.c2
-rw-r--r--arch/um/drivers/harddog_user.c2
-rw-r--r--arch/um/drivers/net_user.c2
-rw-r--r--arch/um/drivers/port_user.c2
-rw-r--r--arch/um/drivers/slip_user.c2
-rw-r--r--arch/um/drivers/slirp_user.c2
-rw-r--r--arch/um/drivers/xterm.c2
7 files changed, 7 insertions, 7 deletions
diff --git a/arch/um/drivers/chan_user.c b/arch/um/drivers/chan_user.c
index 8b81bd5f20f2..4d438f36ea2e 100644
--- a/arch/um/drivers/chan_user.c
+++ b/arch/um/drivers/chan_user.c
@@ -161,7 +161,7 @@ static int winch_tramp(int fd, struct tty_struct *tty, int *fd_out,
161 * problem with /dev/net/tun, which if held open by this 161 * problem with /dev/net/tun, which if held open by this
162 * thread, prevents the TUN/TAP device from being reused. 162 * thread, prevents the TUN/TAP device from being reused.
163 */ 163 */
164 err = run_helper_thread(winch_thread, &data, CLONE_FILES, stack_out, 0); 164 err = run_helper_thread(winch_thread, &data, CLONE_FILES, stack_out);
165 if(err < 0){ 165 if(err < 0){
166 printk("fork of winch_thread failed - errno = %d\n", -err); 166 printk("fork of winch_thread failed - errno = %d\n", -err);
167 goto out_close; 167 goto out_close;
diff --git a/arch/um/drivers/harddog_user.c b/arch/um/drivers/harddog_user.c
index 5eeecf8917c3..1171790f742c 100644
--- a/arch/um/drivers/harddog_user.c
+++ b/arch/um/drivers/harddog_user.c
@@ -68,7 +68,7 @@ int start_watchdog(int *in_fd_ret, int *out_fd_ret, char *sock)
68 args = pid_args; 68 args = pid_args;
69 } 69 }
70 70
71 pid = run_helper(pre_exec, &data, args, NULL); 71 pid = run_helper(pre_exec, &data, args);
72 72
73 os_close_file(out_fds[0]); 73 os_close_file(out_fds[0]);
74 os_close_file(in_fds[1]); 74 os_close_file(in_fds[1]);
diff --git a/arch/um/drivers/net_user.c b/arch/um/drivers/net_user.c
index 3503cff867c3..6fa948ba969d 100644
--- a/arch/um/drivers/net_user.c
+++ b/arch/um/drivers/net_user.c
@@ -187,7 +187,7 @@ static int change_tramp(char **argv, char *output, int output_len)
187 } 187 }
188 pe_data.close_me = fds[0]; 188 pe_data.close_me = fds[0];
189 pe_data.stdout = fds[1]; 189 pe_data.stdout = fds[1];
190 pid = run_helper(change_pre_exec, &pe_data, argv, NULL); 190 pid = run_helper(change_pre_exec, &pe_data, argv);
191 191
192 if (pid > 0) /* Avoid hang as we won't get data in failure case. */ 192 if (pid > 0) /* Avoid hang as we won't get data in failure case. */
193 read_output(fds[0], output, output_len); 193 read_output(fds[0], output, output_len);
diff --git a/arch/um/drivers/port_user.c b/arch/um/drivers/port_user.c
index 3f6357d24bee..29250beba429 100644
--- a/arch/um/drivers/port_user.c
+++ b/arch/um/drivers/port_user.c
@@ -188,7 +188,7 @@ int port_connection(int fd, int *socket, int *pid_out)
188 { .sock_fd = new, 188 { .sock_fd = new,
189 .pipe_fd = socket[1] }); 189 .pipe_fd = socket[1] });
190 190
191 err = run_helper(port_pre_exec, &data, argv, NULL); 191 err = run_helper(port_pre_exec, &data, argv);
192 if(err < 0) 192 if(err < 0)
193 goto out_shutdown; 193 goto out_shutdown;
194 194
diff --git a/arch/um/drivers/slip_user.c b/arch/um/drivers/slip_user.c
index 78f0e515da8f..edc2de3ee2f4 100644
--- a/arch/um/drivers/slip_user.c
+++ b/arch/um/drivers/slip_user.c
@@ -85,7 +85,7 @@ static int slip_tramp(char **argv, int fd)
85 pe_data.stdin = fd; 85 pe_data.stdin = fd;
86 pe_data.stdout = fds[1]; 86 pe_data.stdout = fds[1];
87 pe_data.close_me = fds[0]; 87 pe_data.close_me = fds[0];
88 err = run_helper(slip_pre_exec, &pe_data, argv, NULL); 88 err = run_helper(slip_pre_exec, &pe_data, argv);
89 if(err < 0) 89 if(err < 0)
90 goto out_close; 90 goto out_close;
91 pid = err; 91 pid = err;
diff --git a/arch/um/drivers/slirp_user.c b/arch/um/drivers/slirp_user.c
index 39f889fe9949..0e462f64f227 100644
--- a/arch/um/drivers/slirp_user.c
+++ b/arch/um/drivers/slirp_user.c
@@ -42,7 +42,7 @@ static int slirp_tramp(char **argv, int fd)
42 42
43 pe_data.stdin = fd; 43 pe_data.stdin = fd;
44 pe_data.stdout = fd; 44 pe_data.stdout = fd;
45 pid = run_helper(slirp_pre_exec, &pe_data, argv, NULL); 45 pid = run_helper(slirp_pre_exec, &pe_data, argv);
46 46
47 return(pid); 47 return(pid);
48} 48}
diff --git a/arch/um/drivers/xterm.c b/arch/um/drivers/xterm.c
index 35912846ed21..fd817e541543 100644
--- a/arch/um/drivers/xterm.c
+++ b/arch/um/drivers/xterm.c
@@ -132,7 +132,7 @@ static int xterm_open(int input, int output, int primary, void *d,
132 } 132 }
133 133
134 sprintf(title, data->title, data->device); 134 sprintf(title, data->title, data->device);
135 pid = run_helper(NULL, NULL, argv, NULL); 135 pid = run_helper(NULL, NULL, argv);
136 if (pid < 0) { 136 if (pid < 0) {
137 err = pid; 137 err = pid;
138 printk(UM_KERN_ERR "xterm_open : run_helper failed, " 138 printk(UM_KERN_ERR "xterm_open : run_helper failed, "