diff options
| -rw-r--r-- | arch/um/drivers/chan_kern.c | 4 | ||||
| -rw-r--r-- | arch/um/drivers/chan_user.c | 10 | ||||
| -rw-r--r-- | arch/um/drivers/cow_sys.h | 2 | ||||
| -rw-r--r-- | arch/um/drivers/daemon_user.c | 4 | ||||
| -rw-r--r-- | arch/um/drivers/harddog_user.c | 4 | ||||
| -rw-r--r-- | arch/um/drivers/hostaudio_kern.c | 4 | ||||
| -rw-r--r-- | arch/um/drivers/net_user.c | 8 | ||||
| -rw-r--r-- | arch/um/drivers/port_kern.c | 2 | ||||
| -rw-r--r-- | arch/um/drivers/random.c | 2 | ||||
| -rw-r--r-- | arch/um/drivers/ubd_kern.c | 20 | ||||
| -rw-r--r-- | arch/um/include/os.h | 2 | ||||
| -rw-r--r-- | arch/um/kernel/initrd.c | 2 | ||||
| -rw-r--r-- | arch/um/kernel/ksyms.c | 2 | ||||
| -rw-r--r-- | arch/um/kernel/physmem.c | 4 | ||||
| -rw-r--r-- | arch/um/kernel/sigio.c | 2 | ||||
| -rw-r--r-- | arch/um/kernel/smp.c | 12 | ||||
| -rw-r--r-- | arch/um/kernel/tt/process_kern.c | 6 | ||||
| -rw-r--r-- | arch/um/kernel/tt/ptproxy/proxy.c | 8 | ||||
| -rw-r--r-- | arch/um/kernel/tt/tracer.c | 2 | ||||
| -rw-r--r-- | arch/um/os-Linux/file.c | 50 | ||||
| -rw-r--r-- | arch/um/sys-i386/bugs.c | 4 | ||||
| -rw-r--r-- | arch/um/sys-i386/ldt.c | 2 |
22 files changed, 51 insertions, 105 deletions
diff --git a/arch/um/drivers/chan_kern.c b/arch/um/drivers/chan_kern.c index 92e069e8253f..3aa351611763 100644 --- a/arch/um/drivers/chan_kern.c +++ b/arch/um/drivers/chan_kern.c | |||
| @@ -98,7 +98,7 @@ int generic_read(int fd, char *c_out, void *unused) | |||
| 98 | { | 98 | { |
| 99 | int n; | 99 | int n; |
| 100 | 100 | ||
| 101 | n = os_read_file_k(fd, c_out, sizeof(*c_out)); | 101 | n = os_read_file(fd, c_out, sizeof(*c_out)); |
| 102 | 102 | ||
| 103 | if(n == -EAGAIN) | 103 | if(n == -EAGAIN) |
| 104 | return 0; | 104 | return 0; |
| @@ -111,7 +111,7 @@ int generic_read(int fd, char *c_out, void *unused) | |||
| 111 | 111 | ||
| 112 | int generic_write(int fd, const char *buf, int n, void *unused) | 112 | int generic_write(int fd, const char *buf, int n, void *unused) |
| 113 | { | 113 | { |
| 114 | return os_write_file_k(fd, buf, n); | 114 | return os_write_file(fd, buf, n); |
| 115 | } | 115 | } |
| 116 | 116 | ||
| 117 | int generic_window_size(int fd, void *unused, unsigned short *rows_out, | 117 | int generic_window_size(int fd, void *unused, unsigned short *rows_out, |
diff --git a/arch/um/drivers/chan_user.c b/arch/um/drivers/chan_user.c index a15be1720e03..13f0bf852b2a 100644 --- a/arch/um/drivers/chan_user.c +++ b/arch/um/drivers/chan_user.c | |||
| @@ -85,7 +85,7 @@ static int winch_thread(void *arg) | |||
| 85 | 85 | ||
| 86 | pty_fd = data->pty_fd; | 86 | pty_fd = data->pty_fd; |
| 87 | pipe_fd = data->pipe_fd; | 87 | pipe_fd = data->pipe_fd; |
| 88 | count = os_write_file_k(pipe_fd, &c, sizeof(c)); | 88 | count = os_write_file(pipe_fd, &c, sizeof(c)); |
| 89 | if(count != sizeof(c)) | 89 | if(count != sizeof(c)) |
| 90 | printk("winch_thread : failed to write synchronization " | 90 | printk("winch_thread : failed to write synchronization " |
| 91 | "byte, err = %d\n", -count); | 91 | "byte, err = %d\n", -count); |
| @@ -120,7 +120,7 @@ static int winch_thread(void *arg) | |||
| 120 | * host - since they are not different kernel threads, we cannot use | 120 | * host - since they are not different kernel threads, we cannot use |
| 121 | * kernel semaphores. We don't use SysV semaphores because they are | 121 | * kernel semaphores. We don't use SysV semaphores because they are |
| 122 | * persistent. */ | 122 | * persistent. */ |
| 123 | count = os_read_file_k(pipe_fd, &c, sizeof(c)); | 123 | count = os_read_file(pipe_fd, &c, sizeof(c)); |
| 124 | if(count != sizeof(c)) | 124 | if(count != sizeof(c)) |
| 125 | printk("winch_thread : failed to read synchronization byte, " | 125 | printk("winch_thread : failed to read synchronization byte, " |
| 126 | "err = %d\n", -count); | 126 | "err = %d\n", -count); |
| @@ -130,7 +130,7 @@ static int winch_thread(void *arg) | |||
| 130 | * are blocked.*/ | 130 | * are blocked.*/ |
| 131 | sigsuspend(&sigs); | 131 | sigsuspend(&sigs); |
| 132 | 132 | ||
| 133 | count = os_write_file_k(pipe_fd, &c, sizeof(c)); | 133 | count = os_write_file(pipe_fd, &c, sizeof(c)); |
| 134 | if(count != sizeof(c)) | 134 | if(count != sizeof(c)) |
| 135 | printk("winch_thread : write failed, err = %d\n", | 135 | printk("winch_thread : write failed, err = %d\n", |
| 136 | -count); | 136 | -count); |
| @@ -162,7 +162,7 @@ static int winch_tramp(int fd, struct tty_struct *tty, int *fd_out) | |||
| 162 | } | 162 | } |
| 163 | 163 | ||
| 164 | *fd_out = fds[0]; | 164 | *fd_out = fds[0]; |
| 165 | n = os_read_file_k(fds[0], &c, sizeof(c)); | 165 | n = os_read_file(fds[0], &c, sizeof(c)); |
| 166 | if(n != sizeof(c)){ | 166 | if(n != sizeof(c)){ |
| 167 | printk("winch_tramp : failed to read synchronization byte\n"); | 167 | printk("winch_tramp : failed to read synchronization byte\n"); |
| 168 | printk("read failed, err = %d\n", -n); | 168 | printk("read failed, err = %d\n", -n); |
| @@ -195,7 +195,7 @@ void register_winch(int fd, struct tty_struct *tty) | |||
| 195 | if(thread > 0){ | 195 | if(thread > 0){ |
| 196 | register_winch_irq(thread_fd, fd, thread, tty); | 196 | register_winch_irq(thread_fd, fd, thread, tty); |
| 197 | 197 | ||
| 198 | count = os_write_file_k(thread_fd, &c, sizeof(c)); | 198 | count = os_write_file(thread_fd, &c, sizeof(c)); |
| 199 | if(count != sizeof(c)) | 199 | if(count != sizeof(c)) |
| 200 | printk("register_winch : failed to write " | 200 | printk("register_winch : failed to write " |
| 201 | "synchronization byte, err = %d\n", | 201 | "synchronization byte, err = %d\n", |
diff --git a/arch/um/drivers/cow_sys.h b/arch/um/drivers/cow_sys.h index aa7bef9c38d9..15453845d2ba 100644 --- a/arch/um/drivers/cow_sys.h +++ b/arch/um/drivers/cow_sys.h | |||
| @@ -35,7 +35,7 @@ static inline int cow_file_size(char *file, unsigned long long *size_out) | |||
| 35 | 35 | ||
| 36 | static inline int cow_write_file(int fd, void *buf, int size) | 36 | static inline int cow_write_file(int fd, void *buf, int size) |
| 37 | { | 37 | { |
| 38 | return os_write_file_k(fd, buf, size); | 38 | return os_write_file(fd, buf, size); |
| 39 | } | 39 | } |
| 40 | 40 | ||
| 41 | #endif | 41 | #endif |
diff --git a/arch/um/drivers/daemon_user.c b/arch/um/drivers/daemon_user.c index e1fd26c1b728..b869e3899683 100644 --- a/arch/um/drivers/daemon_user.c +++ b/arch/um/drivers/daemon_user.c | |||
| @@ -94,7 +94,7 @@ static int connect_to_switch(struct daemon_data *pri) | |||
| 94 | req.version = SWITCH_VERSION; | 94 | req.version = SWITCH_VERSION; |
| 95 | req.type = REQ_NEW_CONTROL; | 95 | req.type = REQ_NEW_CONTROL; |
| 96 | req.sock = *local_addr; | 96 | req.sock = *local_addr; |
| 97 | n = os_write_file_k(pri->control, &req, sizeof(req)); | 97 | n = os_write_file(pri->control, &req, sizeof(req)); |
| 98 | if(n != sizeof(req)){ | 98 | if(n != sizeof(req)){ |
| 99 | printk("daemon_open : control setup request failed, err = %d\n", | 99 | printk("daemon_open : control setup request failed, err = %d\n", |
| 100 | -n); | 100 | -n); |
| @@ -102,7 +102,7 @@ static int connect_to_switch(struct daemon_data *pri) | |||
| 102 | goto out_free; | 102 | goto out_free; |
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | n = os_read_file_k(pri->control, sun, sizeof(*sun)); | 105 | n = os_read_file(pri->control, sun, sizeof(*sun)); |
| 106 | if(n != sizeof(*sun)){ | 106 | if(n != sizeof(*sun)){ |
| 107 | printk("daemon_open : read of data socket failed, err = %d\n", | 107 | printk("daemon_open : read of data socket failed, err = %d\n", |
| 108 | -n); | 108 | -n); |
diff --git a/arch/um/drivers/harddog_user.c b/arch/um/drivers/harddog_user.c index 0fbb1615171e..5eeecf8917c3 100644 --- a/arch/um/drivers/harddog_user.c +++ b/arch/um/drivers/harddog_user.c | |||
| @@ -79,7 +79,7 @@ int start_watchdog(int *in_fd_ret, int *out_fd_ret, char *sock) | |||
| 79 | goto out_close_out; | 79 | goto out_close_out; |
| 80 | } | 80 | } |
| 81 | 81 | ||
| 82 | n = os_read_file_k(in_fds[0], &c, sizeof(c)); | 82 | n = os_read_file(in_fds[0], &c, sizeof(c)); |
| 83 | if(n == 0){ | 83 | if(n == 0){ |
| 84 | printk("harddog_open - EOF on watchdog pipe\n"); | 84 | printk("harddog_open - EOF on watchdog pipe\n"); |
| 85 | helper_wait(pid); | 85 | helper_wait(pid); |
| @@ -118,7 +118,7 @@ int ping_watchdog(int fd) | |||
| 118 | int n; | 118 | int n; |
| 119 | char c = '\n'; | 119 | char c = '\n'; |
| 120 | 120 | ||
| 121 | n = os_write_file_k(fd, &c, sizeof(c)); | 121 | n = os_write_file(fd, &c, sizeof(c)); |
| 122 | if(n != sizeof(c)){ | 122 | if(n != sizeof(c)){ |
| 123 | printk("ping_watchdog - write failed, err = %d\n", -n); | 123 | printk("ping_watchdog - write failed, err = %d\n", -n); |
| 124 | if(n < 0) | 124 | if(n < 0) |
diff --git a/arch/um/drivers/hostaudio_kern.c b/arch/um/drivers/hostaudio_kern.c index bd6688ea96de..10e08a8c17c3 100644 --- a/arch/um/drivers/hostaudio_kern.c +++ b/arch/um/drivers/hostaudio_kern.c | |||
| @@ -84,7 +84,7 @@ static ssize_t hostaudio_read(struct file *file, char __user *buffer, | |||
| 84 | if(kbuf == NULL) | 84 | if(kbuf == NULL) |
| 85 | return(-ENOMEM); | 85 | return(-ENOMEM); |
| 86 | 86 | ||
| 87 | err = os_read_file_k(state->fd, kbuf, count); | 87 | err = os_read_file(state->fd, kbuf, count); |
| 88 | if(err < 0) | 88 | if(err < 0) |
| 89 | goto out; | 89 | goto out; |
| 90 | 90 | ||
| @@ -115,7 +115,7 @@ static ssize_t hostaudio_write(struct file *file, const char __user *buffer, | |||
| 115 | if(copy_from_user(kbuf, buffer, count)) | 115 | if(copy_from_user(kbuf, buffer, count)) |
| 116 | goto out; | 116 | goto out; |
| 117 | 117 | ||
| 118 | err = os_write_file_k(state->fd, kbuf, count); | 118 | err = os_write_file(state->fd, kbuf, count); |
| 119 | if(err < 0) | 119 | if(err < 0) |
| 120 | goto out; | 120 | goto out; |
| 121 | *ppos += err; | 121 | *ppos += err; |
diff --git a/arch/um/drivers/net_user.c b/arch/um/drivers/net_user.c index 8bc6688c4f0f..3503cff867c3 100644 --- a/arch/um/drivers/net_user.c +++ b/arch/um/drivers/net_user.c | |||
| @@ -63,7 +63,7 @@ void read_output(int fd, char *output, int len) | |||
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | *output = '\0'; | 65 | *output = '\0'; |
| 66 | ret = os_read_file_k(fd, &remain, sizeof(remain)); | 66 | ret = os_read_file(fd, &remain, sizeof(remain)); |
| 67 | 67 | ||
| 68 | if (ret != sizeof(remain)) { | 68 | if (ret != sizeof(remain)) { |
| 69 | expected = sizeof(remain); | 69 | expected = sizeof(remain); |
| @@ -73,7 +73,7 @@ void read_output(int fd, char *output, int len) | |||
| 73 | 73 | ||
| 74 | while(remain != 0){ | 74 | while(remain != 0){ |
| 75 | expected = (remain < len) ? remain : len; | 75 | expected = (remain < len) ? remain : len; |
| 76 | ret = os_read_file_k(fd, output, expected); | 76 | ret = os_read_file(fd, output, expected); |
| 77 | if (ret != expected) { | 77 | if (ret != expected) { |
| 78 | str = "data"; | 78 | str = "data"; |
| 79 | goto err; | 79 | goto err; |
| @@ -94,7 +94,7 @@ int net_read(int fd, void *buf, int len) | |||
| 94 | { | 94 | { |
| 95 | int n; | 95 | int n; |
| 96 | 96 | ||
| 97 | n = os_read_file_k(fd, buf, len); | 97 | n = os_read_file(fd, buf, len); |
| 98 | 98 | ||
| 99 | if(n == -EAGAIN) | 99 | if(n == -EAGAIN) |
| 100 | return 0; | 100 | return 0; |
| @@ -122,7 +122,7 @@ int net_write(int fd, void *buf, int len) | |||
| 122 | { | 122 | { |
| 123 | int n; | 123 | int n; |
| 124 | 124 | ||
| 125 | n = os_write_file_k(fd, buf, len); | 125 | n = os_write_file(fd, buf, len); |
| 126 | 126 | ||
| 127 | if(n == -EAGAIN) | 127 | if(n == -EAGAIN) |
| 128 | return 0; | 128 | return 0; |
diff --git a/arch/um/drivers/port_kern.c b/arch/um/drivers/port_kern.c index 75bb40126c2e..1c8efd95c421 100644 --- a/arch/um/drivers/port_kern.c +++ b/arch/um/drivers/port_kern.c | |||
| @@ -113,7 +113,7 @@ static int port_accept(struct port_list *port) | |||
| 113 | } | 113 | } |
| 114 | 114 | ||
| 115 | if(atomic_read(&port->wait_count) == 0){ | 115 | if(atomic_read(&port->wait_count) == 0){ |
| 116 | os_write_file_k(fd, NO_WAITER_MSG, sizeof(NO_WAITER_MSG)); | 116 | os_write_file(fd, NO_WAITER_MSG, sizeof(NO_WAITER_MSG)); |
| 117 | printk("No one waiting for port\n"); | 117 | printk("No one waiting for port\n"); |
| 118 | } | 118 | } |
| 119 | list_add(&conn->list, &port->pending); | 119 | list_add(&conn->list, &port->pending); |
diff --git a/arch/um/drivers/random.c b/arch/um/drivers/random.c index 94838f4c1645..e942e836f995 100644 --- a/arch/um/drivers/random.c +++ b/arch/um/drivers/random.c | |||
| @@ -44,7 +44,7 @@ static ssize_t rng_dev_read (struct file *filp, char __user *buf, size_t size, | |||
| 44 | int n, ret = 0, have_data; | 44 | int n, ret = 0, have_data; |
| 45 | 45 | ||
| 46 | while(size){ | 46 | while(size){ |
| 47 | n = os_read_file_k(random_fd, &data, sizeof(data)); | 47 | n = os_read_file(random_fd, &data, sizeof(data)); |
| 48 | if(n > 0){ | 48 | if(n > 0){ |
| 49 | have_data = n; | 49 | have_data = n; |
| 50 | while (have_data && size) { | 50 | while (have_data && size) { |
diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c index 614fe25a31bd..70509ddaac03 100644 --- a/arch/um/drivers/ubd_kern.c +++ b/arch/um/drivers/ubd_kern.c | |||
| @@ -511,8 +511,8 @@ static void ubd_handler(void) | |||
| 511 | int n; | 511 | int n; |
| 512 | 512 | ||
| 513 | while(1){ | 513 | while(1){ |
| 514 | n = os_read_file_k(thread_fd, &req, | 514 | n = os_read_file(thread_fd, &req, |
| 515 | sizeof(struct io_thread_req *)); | 515 | sizeof(struct io_thread_req *)); |
| 516 | if(n != sizeof(req)){ | 516 | if(n != sizeof(req)){ |
| 517 | if(n == -EAGAIN) | 517 | if(n == -EAGAIN) |
| 518 | break; | 518 | break; |
| @@ -1112,8 +1112,8 @@ static void do_ubd_request(request_queue_t *q) | |||
| 1112 | (unsigned long long) req->sector << 9, | 1112 | (unsigned long long) req->sector << 9, |
| 1113 | sg->offset, sg->length, sg->page); | 1113 | sg->offset, sg->length, sg->page); |
| 1114 | 1114 | ||
| 1115 | n = os_write_file_k(thread_fd, &io_req, | 1115 | n = os_write_file(thread_fd, &io_req, |
| 1116 | sizeof(struct io_thread_req *)); | 1116 | sizeof(struct io_thread_req *)); |
| 1117 | if(n != sizeof(struct io_thread_req *)){ | 1117 | if(n != sizeof(struct io_thread_req *)){ |
| 1118 | if(n != -EAGAIN) | 1118 | if(n != -EAGAIN) |
| 1119 | printk("write to io thread failed, " | 1119 | printk("write to io thread failed, " |
| @@ -1366,8 +1366,8 @@ static int update_bitmap(struct io_thread_req *req) | |||
| 1366 | return 1; | 1366 | return 1; |
| 1367 | } | 1367 | } |
| 1368 | 1368 | ||
| 1369 | n = os_write_file_k(req->fds[1], &req->bitmap_words, | 1369 | n = os_write_file(req->fds[1], &req->bitmap_words, |
| 1370 | sizeof(req->bitmap_words)); | 1370 | sizeof(req->bitmap_words)); |
| 1371 | if(n != sizeof(req->bitmap_words)){ | 1371 | if(n != sizeof(req->bitmap_words)){ |
| 1372 | printk("do_io - bitmap update failed, err = %d fd = %d\n", -n, | 1372 | printk("do_io - bitmap update failed, err = %d fd = %d\n", -n, |
| 1373 | req->fds[1]); | 1373 | req->fds[1]); |
| @@ -1411,7 +1411,7 @@ void do_io(struct io_thread_req *req) | |||
| 1411 | do { | 1411 | do { |
| 1412 | buf = &buf[n]; | 1412 | buf = &buf[n]; |
| 1413 | len -= n; | 1413 | len -= n; |
| 1414 | n = os_read_file_k(req->fds[bit], buf, len); | 1414 | n = os_read_file(req->fds[bit], buf, len); |
| 1415 | if (n < 0) { | 1415 | if (n < 0) { |
| 1416 | printk("do_io - read failed, err = %d " | 1416 | printk("do_io - read failed, err = %d " |
| 1417 | "fd = %d\n", -n, req->fds[bit]); | 1417 | "fd = %d\n", -n, req->fds[bit]); |
| @@ -1421,7 +1421,7 @@ void do_io(struct io_thread_req *req) | |||
| 1421 | } while((n < len) && (n != 0)); | 1421 | } while((n < len) && (n != 0)); |
| 1422 | if (n < len) memset(&buf[n], 0, len - n); | 1422 | if (n < len) memset(&buf[n], 0, len - n); |
| 1423 | } else { | 1423 | } else { |
| 1424 | n = os_write_file_k(req->fds[bit], buf, len); | 1424 | n = os_write_file(req->fds[bit], buf, len); |
| 1425 | if(n != len){ | 1425 | if(n != len){ |
| 1426 | printk("do_io - write failed err = %d " | 1426 | printk("do_io - write failed err = %d " |
| 1427 | "fd = %d\n", -n, req->fds[bit]); | 1427 | "fd = %d\n", -n, req->fds[bit]); |
| @@ -1451,7 +1451,7 @@ int io_thread(void *arg) | |||
| 1451 | 1451 | ||
| 1452 | ignore_sigwinch_sig(); | 1452 | ignore_sigwinch_sig(); |
| 1453 | while(1){ | 1453 | while(1){ |
| 1454 | n = os_read_file_k(kernel_fd, &req, | 1454 | n = os_read_file(kernel_fd, &req, |
| 1455 | sizeof(struct io_thread_req *)); | 1455 | sizeof(struct io_thread_req *)); |
| 1456 | if(n != sizeof(struct io_thread_req *)){ | 1456 | if(n != sizeof(struct io_thread_req *)){ |
| 1457 | if(n < 0) | 1457 | if(n < 0) |
| @@ -1465,7 +1465,7 @@ int io_thread(void *arg) | |||
| 1465 | } | 1465 | } |
| 1466 | io_count++; | 1466 | io_count++; |
| 1467 | do_io(req); | 1467 | do_io(req); |
| 1468 | n = os_write_file_k(kernel_fd, &req, | 1468 | n = os_write_file(kernel_fd, &req, |
| 1469 | sizeof(struct io_thread_req *)); | 1469 | sizeof(struct io_thread_req *)); |
| 1470 | if(n != sizeof(struct io_thread_req *)) | 1470 | if(n != sizeof(struct io_thread_req *)) |
| 1471 | printk("io_thread - write failed, fd = %d, err = %d\n", | 1471 | printk("io_thread - write failed, fd = %d, err = %d\n", |
diff --git a/arch/um/include/os.h b/arch/um/include/os.h index 901804db3c35..d66380908703 100644 --- a/arch/um/include/os.h +++ b/arch/um/include/os.h | |||
| @@ -144,9 +144,7 @@ extern int os_mode_fd(int fd, int mode); | |||
| 144 | extern int os_seek_file(int fd, __u64 offset); | 144 | extern int os_seek_file(int fd, __u64 offset); |
| 145 | extern int os_open_file(char *file, struct openflags flags, int mode); | 145 | extern int os_open_file(char *file, struct openflags flags, int mode); |
| 146 | extern int os_read_file(int fd, void *buf, int len); | 146 | extern int os_read_file(int fd, void *buf, int len); |
| 147 | extern int os_read_file_k(int fd, void *buf, int len); | ||
| 148 | extern int os_write_file(int fd, const void *buf, int count); | 147 | extern int os_write_file(int fd, const void *buf, int count); |
| 149 | extern int os_write_file_k(int fd, const void *buf, int len); | ||
| 150 | extern int os_file_size(char *file, unsigned long long *size_out); | 148 | extern int os_file_size(char *file, unsigned long long *size_out); |
| 151 | extern int os_file_modtime(char *file, unsigned long *modtime); | 149 | extern int os_file_modtime(char *file, unsigned long *modtime); |
| 152 | extern int os_pipe(int *fd, int stream, int close_on_exec); | 150 | extern int os_pipe(int *fd, int stream, int close_on_exec); |
diff --git a/arch/um/kernel/initrd.c b/arch/um/kernel/initrd.c index cff73faae991..16dc43e9d940 100644 --- a/arch/um/kernel/initrd.c +++ b/arch/um/kernel/initrd.c | |||
| @@ -63,7 +63,7 @@ int load_initrd(char *filename, void *buf, int size) | |||
| 63 | printk("Opening '%s' failed - err = %d\n", filename, -fd); | 63 | printk("Opening '%s' failed - err = %d\n", filename, -fd); |
| 64 | return -1; | 64 | return -1; |
| 65 | } | 65 | } |
| 66 | n = os_read_file_k(fd, buf, size); | 66 | n = os_read_file(fd, buf, size); |
| 67 | if(n != size){ | 67 | if(n != size){ |
| 68 | printk("Read of %d bytes from '%s' failed, err = %d\n", size, | 68 | printk("Read of %d bytes from '%s' failed, err = %d\n", size, |
| 69 | filename, -n); | 69 | filename, -n); |
diff --git a/arch/um/kernel/ksyms.c b/arch/um/kernel/ksyms.c index 7c158448b9fd..7b3e53fb8070 100644 --- a/arch/um/kernel/ksyms.c +++ b/arch/um/kernel/ksyms.c | |||
| @@ -62,9 +62,7 @@ EXPORT_SYMBOL(os_get_exec_close); | |||
| 62 | EXPORT_SYMBOL(os_set_exec_close); | 62 | EXPORT_SYMBOL(os_set_exec_close); |
| 63 | EXPORT_SYMBOL(os_getpid); | 63 | EXPORT_SYMBOL(os_getpid); |
| 64 | EXPORT_SYMBOL(os_open_file); | 64 | EXPORT_SYMBOL(os_open_file); |
| 65 | EXPORT_SYMBOL(os_read_file_k); | ||
| 66 | EXPORT_SYMBOL(os_read_file); | 65 | EXPORT_SYMBOL(os_read_file); |
| 67 | EXPORT_SYMBOL(os_write_file_k); | ||
| 68 | EXPORT_SYMBOL(os_write_file); | 66 | EXPORT_SYMBOL(os_write_file); |
| 69 | EXPORT_SYMBOL(os_seek_file); | 67 | EXPORT_SYMBOL(os_seek_file); |
| 70 | EXPORT_SYMBOL(os_lock_file); | 68 | EXPORT_SYMBOL(os_lock_file); |
diff --git a/arch/um/kernel/physmem.c b/arch/um/kernel/physmem.c index 77021a627da6..df1ad3ba130c 100644 --- a/arch/um/kernel/physmem.c +++ b/arch/um/kernel/physmem.c | |||
| @@ -211,7 +211,7 @@ void physmem_forget_descriptor(int fd) | |||
| 211 | panic("physmem_forget_descriptor - failed to seek " | 211 | panic("physmem_forget_descriptor - failed to seek " |
| 212 | "to %lld in fd %d, error = %d\n", | 212 | "to %lld in fd %d, error = %d\n", |
| 213 | offset, fd, -err); | 213 | offset, fd, -err); |
| 214 | err = os_read_file_k(fd, addr, PAGE_SIZE); | 214 | err = os_read_file(fd, addr, PAGE_SIZE); |
| 215 | if(err < 0) | 215 | if(err < 0) |
| 216 | panic("physmem_forget_descriptor - failed to read " | 216 | panic("physmem_forget_descriptor - failed to read " |
| 217 | "from fd %d to 0x%p, error = %d\n", | 217 | "from fd %d to 0x%p, error = %d\n", |
| @@ -341,7 +341,7 @@ void setup_physmem(unsigned long start, unsigned long reserve_end, | |||
| 341 | * from physmem_fd, so it needs to be written out there. | 341 | * from physmem_fd, so it needs to be written out there. |
| 342 | */ | 342 | */ |
| 343 | os_seek_file(physmem_fd, __pa(&__syscall_stub_start)); | 343 | os_seek_file(physmem_fd, __pa(&__syscall_stub_start)); |
| 344 | os_write_file_k(physmem_fd, &__syscall_stub_start, PAGE_SIZE); | 344 | os_write_file(physmem_fd, &__syscall_stub_start, PAGE_SIZE); |
| 345 | 345 | ||
| 346 | bootmap_size = init_bootmem(pfn, pfn + delta); | 346 | bootmap_size = init_bootmem(pfn, pfn + delta); |
| 347 | free_bootmem(__pa(reserve_end) + bootmap_size, | 347 | free_bootmem(__pa(reserve_end) + bootmap_size, |
diff --git a/arch/um/kernel/sigio.c b/arch/um/kernel/sigio.c index f756e78085e4..89f9866a1354 100644 --- a/arch/um/kernel/sigio.c +++ b/arch/um/kernel/sigio.c | |||
| @@ -21,7 +21,7 @@ static irqreturn_t sigio_interrupt(int irq, void *data) | |||
| 21 | { | 21 | { |
| 22 | char c; | 22 | char c; |
| 23 | 23 | ||
| 24 | os_read_file_k(sigio_irq_fd, &c, sizeof(c)); | 24 | os_read_file(sigio_irq_fd, &c, sizeof(c)); |
| 25 | reactivate_fd(sigio_irq_fd, SIGIO_WRITE_IRQ); | 25 | reactivate_fd(sigio_irq_fd, SIGIO_WRITE_IRQ); |
| 26 | return IRQ_HANDLED; | 26 | return IRQ_HANDLED; |
| 27 | } | 27 | } |
diff --git a/arch/um/kernel/smp.c b/arch/um/kernel/smp.c index 9ac562124654..e6a7778006ad 100644 --- a/arch/um/kernel/smp.c +++ b/arch/um/kernel/smp.c | |||
| @@ -47,7 +47,7 @@ struct task_struct *idle_threads[NR_CPUS]; | |||
| 47 | 47 | ||
| 48 | void smp_send_reschedule(int cpu) | 48 | void smp_send_reschedule(int cpu) |
| 49 | { | 49 | { |
| 50 | os_write_file_k(cpu_data[cpu].ipi_pipe[1], "R", 1); | 50 | os_write_file(cpu_data[cpu].ipi_pipe[1], "R", 1); |
| 51 | num_reschedules_sent++; | 51 | num_reschedules_sent++; |
| 52 | } | 52 | } |
| 53 | 53 | ||
| @@ -59,7 +59,7 @@ void smp_send_stop(void) | |||
| 59 | for(i = 0; i < num_online_cpus(); i++){ | 59 | for(i = 0; i < num_online_cpus(); i++){ |
| 60 | if(i == current_thread->cpu) | 60 | if(i == current_thread->cpu) |
| 61 | continue; | 61 | continue; |
| 62 | os_write_file_k(cpu_data[i].ipi_pipe[1], "S", 1); | 62 | os_write_file(cpu_data[i].ipi_pipe[1], "S", 1); |
| 63 | } | 63 | } |
| 64 | printk("done\n"); | 64 | printk("done\n"); |
| 65 | } | 65 | } |
| @@ -108,8 +108,8 @@ static struct task_struct *idle_thread(int cpu) | |||
| 108 | { .pid = new_task->thread.mode.tt.extern_pid, | 108 | { .pid = new_task->thread.mode.tt.extern_pid, |
| 109 | .task = new_task } ); | 109 | .task = new_task } ); |
| 110 | idle_threads[cpu] = new_task; | 110 | idle_threads[cpu] = new_task; |
| 111 | CHOOSE_MODE(os_write_file_k(new_task->thread.mode.tt.switch_pipe[1], &c, | 111 | CHOOSE_MODE(os_write_file(new_task->thread.mode.tt.switch_pipe[1], &c, |
| 112 | sizeof(c)), | 112 | sizeof(c)), |
| 113 | ({ panic("skas mode doesn't support SMP"); })); | 113 | ({ panic("skas mode doesn't support SMP"); })); |
| 114 | return new_task; | 114 | return new_task; |
| 115 | } | 115 | } |
| @@ -179,7 +179,7 @@ void IPI_handler(int cpu) | |||
| 179 | int fd; | 179 | int fd; |
| 180 | 180 | ||
| 181 | fd = cpu_data[cpu].ipi_pipe[0]; | 181 | fd = cpu_data[cpu].ipi_pipe[0]; |
| 182 | while (os_read_file_k(fd, &c, 1) == 1) { | 182 | while (os_read_file(fd, &c, 1) == 1) { |
| 183 | switch (c) { | 183 | switch (c) { |
| 184 | case 'C': | 184 | case 'C': |
| 185 | smp_call_function_slave(cpu); | 185 | smp_call_function_slave(cpu); |
| @@ -239,7 +239,7 @@ int smp_call_function(void (*_func)(void *info), void *_info, int nonatomic, | |||
| 239 | info = _info; | 239 | info = _info; |
| 240 | 240 | ||
| 241 | for_each_online_cpu(i) | 241 | for_each_online_cpu(i) |
| 242 | os_write_file_k(cpu_data[i].ipi_pipe[1], "C", 1); | 242 | os_write_file(cpu_data[i].ipi_pipe[1], "C", 1); |
| 243 | 243 | ||
| 244 | while (atomic_read(&scf_started) != cpus) | 244 | while (atomic_read(&scf_started) != cpus) |
| 245 | barrier(); | 245 | barrier(); |
diff --git a/arch/um/kernel/tt/process_kern.c b/arch/um/kernel/tt/process_kern.c index c81bd2074930..c631303cb800 100644 --- a/arch/um/kernel/tt/process_kern.c +++ b/arch/um/kernel/tt/process_kern.c | |||
| @@ -57,14 +57,14 @@ void switch_to_tt(void *prev, void *next) | |||
| 57 | * nor the value in "to" (since it was the task which stole us the CPU, | 57 | * nor the value in "to" (since it was the task which stole us the CPU, |
| 58 | * which we don't care about). */ | 58 | * which we don't care about). */ |
| 59 | 59 | ||
| 60 | err = os_write_file_k(to->thread.mode.tt.switch_pipe[1], &c, sizeof(c)); | 60 | err = os_write_file(to->thread.mode.tt.switch_pipe[1], &c, sizeof(c)); |
| 61 | if(err != sizeof(c)) | 61 | if(err != sizeof(c)) |
| 62 | panic("write of switch_pipe failed, err = %d", -err); | 62 | panic("write of switch_pipe failed, err = %d", -err); |
| 63 | 63 | ||
| 64 | if(from->thread.mode.tt.switch_pipe[0] == -1) | 64 | if(from->thread.mode.tt.switch_pipe[0] == -1) |
| 65 | os_kill_process(os_getpid(), 0); | 65 | os_kill_process(os_getpid(), 0); |
| 66 | 66 | ||
| 67 | err = os_read_file_k(from->thread.mode.tt.switch_pipe[0], &c, | 67 | err = os_read_file(from->thread.mode.tt.switch_pipe[0], &c, |
| 68 | sizeof(c)); | 68 | sizeof(c)); |
| 69 | if(err != sizeof(c)) | 69 | if(err != sizeof(c)) |
| 70 | panic("read of switch_pipe failed, errno = %d", -err); | 70 | panic("read of switch_pipe failed, errno = %d", -err); |
| @@ -114,7 +114,7 @@ void suspend_new_thread(int fd) | |||
| 114 | char c; | 114 | char c; |
| 115 | 115 | ||
| 116 | os_stop_process(os_getpid()); | 116 | os_stop_process(os_getpid()); |
| 117 | err = os_read_file_k(fd, &c, sizeof(c)); | 117 | err = os_read_file(fd, &c, sizeof(c)); |
| 118 | if(err != sizeof(c)) | 118 | if(err != sizeof(c)) |
| 119 | panic("read failed in suspend_new_thread, err = %d", -err); | 119 | panic("read failed in suspend_new_thread, err = %d", -err); |
| 120 | } | 120 | } |
diff --git a/arch/um/kernel/tt/ptproxy/proxy.c b/arch/um/kernel/tt/ptproxy/proxy.c index 007beb6b7c00..420c23f311f3 100644 --- a/arch/um/kernel/tt/ptproxy/proxy.c +++ b/arch/um/kernel/tt/ptproxy/proxy.c | |||
| @@ -338,14 +338,14 @@ int start_debugger(char *prog, int startup, int stop, int *fd_out) | |||
| 338 | "err = %d\n", -fd); | 338 | "err = %d\n", -fd); |
| 339 | exit(1); | 339 | exit(1); |
| 340 | } | 340 | } |
| 341 | os_write_file_k(fd, gdb_init_string, | 341 | os_write_file(fd, gdb_init_string, |
| 342 | sizeof(gdb_init_string) - 1); | 342 | sizeof(gdb_init_string) - 1); |
| 343 | if(startup){ | 343 | if(startup){ |
| 344 | if(stop){ | 344 | if(stop){ |
| 345 | os_write_file_k(fd, "b start_kernel\n", | 345 | os_write_file(fd, "b start_kernel\n", |
| 346 | strlen("b start_kernel\n")); | 346 | strlen("b start_kernel\n")); |
| 347 | } | 347 | } |
| 348 | os_write_file_k(fd, "c\n", strlen("c\n")); | 348 | os_write_file(fd, "c\n", strlen("c\n")); |
| 349 | } | 349 | } |
| 350 | if(ptrace(PTRACE_TRACEME, 0, 0, 0) < 0){ | 350 | if(ptrace(PTRACE_TRACEME, 0, 0, 0) < 0){ |
| 351 | printk("start_debugger : PTRACE_TRACEME failed, " | 351 | printk("start_debugger : PTRACE_TRACEME failed, " |
diff --git a/arch/um/kernel/tt/tracer.c b/arch/um/kernel/tt/tracer.c index 264da6c5a5c3..c23588393f6e 100644 --- a/arch/um/kernel/tt/tracer.c +++ b/arch/um/kernel/tt/tracer.c | |||
| @@ -44,7 +44,7 @@ static void tracer_winch_handler(int sig) | |||
| 44 | int n; | 44 | int n; |
| 45 | char c = 1; | 45 | char c = 1; |
| 46 | 46 | ||
| 47 | n = os_write_file_k(tracer_winch[1], &c, sizeof(c)); | 47 | n = os_write_file(tracer_winch[1], &c, sizeof(c)); |
| 48 | if(n != sizeof(c)) | 48 | if(n != sizeof(c)) |
| 49 | printk("tracer_winch_handler - write failed, err = %d\n", -n); | 49 | printk("tracer_winch_handler - write failed, err = %d\n", -n); |
| 50 | } | 50 | } |
diff --git a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c index 5e9b8dcf34d4..6f92f732d253 100644 --- a/arch/um/os-Linux/file.c +++ b/arch/um/os-Linux/file.c | |||
| @@ -290,52 +290,8 @@ int os_seek_file(int fd, __u64 offset) | |||
| 290 | return 0; | 290 | return 0; |
| 291 | } | 291 | } |
| 292 | 292 | ||
| 293 | static int fault_buffer(void *start, int len, | ||
| 294 | int (*copy_proc)(void *addr, void *buf, int len)) | ||
| 295 | { | ||
| 296 | int page = getpagesize(), i; | ||
| 297 | char c; | ||
| 298 | |||
| 299 | for(i = 0; i < len; i += page){ | ||
| 300 | if((*copy_proc)(start + i, &c, sizeof(c))) | ||
| 301 | return -EFAULT; | ||
| 302 | } | ||
| 303 | if((len % page) != 0){ | ||
| 304 | if((*copy_proc)(start + len - 1, &c, sizeof(c))) | ||
| 305 | return -EFAULT; | ||
| 306 | } | ||
| 307 | return 0; | ||
| 308 | } | ||
| 309 | |||
| 310 | static int file_io(int fd, void *buf, int len, | ||
| 311 | int (*io_proc)(int fd, void *buf, int len), | ||
| 312 | int (*copy_user_proc)(void *addr, void *buf, int len)) | ||
| 313 | { | ||
| 314 | int n, err; | ||
| 315 | |||
| 316 | do { | ||
| 317 | n = (*io_proc)(fd, buf, len); | ||
| 318 | if((n < 0) && (errno == EFAULT)){ | ||
| 319 | err = fault_buffer(buf, len, copy_user_proc); | ||
| 320 | if(err) | ||
| 321 | return err; | ||
| 322 | n = (*io_proc)(fd, buf, len); | ||
| 323 | } | ||
| 324 | } while((n < 0) && (errno == EINTR)); | ||
| 325 | |||
| 326 | if(n < 0) | ||
| 327 | return -errno; | ||
| 328 | return n; | ||
| 329 | } | ||
| 330 | |||
| 331 | int os_read_file(int fd, void *buf, int len) | 293 | int os_read_file(int fd, void *buf, int len) |
| 332 | { | 294 | { |
| 333 | return file_io(fd, buf, len, (int (*)(int, void *, int)) read, | ||
| 334 | copy_from_user_proc); | ||
| 335 | } | ||
| 336 | |||
| 337 | int os_read_file_k(int fd, void *buf, int len) | ||
| 338 | { | ||
| 339 | int n = read(fd, buf, len); | 295 | int n = read(fd, buf, len); |
| 340 | 296 | ||
| 341 | if(n < 0) | 297 | if(n < 0) |
| @@ -345,12 +301,6 @@ int os_read_file_k(int fd, void *buf, int len) | |||
| 345 | 301 | ||
| 346 | int os_write_file(int fd, const void *buf, int len) | 302 | int os_write_file(int fd, const void *buf, int len) |
| 347 | { | 303 | { |
| 348 | return file_io(fd, (void *) buf, len, | ||
| 349 | (int (*)(int, void *, int)) write, copy_to_user_proc); | ||
| 350 | } | ||
| 351 | |||
| 352 | int os_write_file_k(int fd, const void *buf, int len) | ||
| 353 | { | ||
| 354 | int n = write(fd, (void *) buf, len); | 304 | int n = write(fd, (void *) buf, len); |
| 355 | 305 | ||
| 356 | if(n < 0) | 306 | if(n < 0) |
diff --git a/arch/um/sys-i386/bugs.c b/arch/um/sys-i386/bugs.c index f5dfe49c8442..0393e44813e7 100644 --- a/arch/um/sys-i386/bugs.c +++ b/arch/um/sys-i386/bugs.c | |||
| @@ -28,7 +28,7 @@ static char token(int fd, char *buf, int len, char stop) | |||
| 28 | ptr = buf; | 28 | ptr = buf; |
| 29 | end = &buf[len]; | 29 | end = &buf[len]; |
| 30 | do { | 30 | do { |
| 31 | n = os_read_file_k(fd, ptr, sizeof(*ptr)); | 31 | n = os_read_file(fd, ptr, sizeof(*ptr)); |
| 32 | c = *ptr++; | 32 | c = *ptr++; |
| 33 | if(n != sizeof(*ptr)){ | 33 | if(n != sizeof(*ptr)){ |
| 34 | if(n == 0) | 34 | if(n == 0) |
| @@ -67,7 +67,7 @@ static int find_cpuinfo_line(int fd, char *key, char *scratch, int len) | |||
| 67 | return 1; | 67 | return 1; |
| 68 | 68 | ||
| 69 | do { | 69 | do { |
| 70 | n = os_read_file_k(fd, &c, sizeof(c)); | 70 | n = os_read_file(fd, &c, sizeof(c)); |
| 71 | if(n != sizeof(c)){ | 71 | if(n != sizeof(c)){ |
| 72 | printk("Failed to find newline in " | 72 | printk("Failed to find newline in " |
| 73 | "/proc/cpuinfo, err = %d\n", -n); | 73 | "/proc/cpuinfo, err = %d\n", -n); |
diff --git a/arch/um/sys-i386/ldt.c b/arch/um/sys-i386/ldt.c index d031a13bd969..a939a7ef0227 100644 --- a/arch/um/sys-i386/ldt.c +++ b/arch/um/sys-i386/ldt.c | |||
| @@ -517,7 +517,7 @@ long init_new_ldt(struct mmu_context_skas * new_mm, | |||
| 517 | .u = | 517 | .u = |
| 518 | { .copy_segments = | 518 | { .copy_segments = |
| 519 | from_mm->id.u.mm_fd } } ); | 519 | from_mm->id.u.mm_fd } } ); |
| 520 | i = os_write_file_k(new_mm->id.u.mm_fd, ©, sizeof(copy)); | 520 | i = os_write_file(new_mm->id.u.mm_fd, ©, sizeof(copy)); |
| 521 | if(i != sizeof(copy)) | 521 | if(i != sizeof(copy)) |
| 522 | printk("new_mm : /proc/mm copy_segments failed, " | 522 | printk("new_mm : /proc/mm copy_segments failed, " |
| 523 | "err = %d\n", -i); | 523 | "err = %d\n", -i); |
