diff options
Diffstat (limited to 'arch/tile/kernel/compat.c')
-rw-r--r-- | arch/tile/kernel/compat.c | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/arch/tile/kernel/compat.c b/arch/tile/kernel/compat.c index a374c99deeb6..b1e06d041555 100644 --- a/arch/tile/kernel/compat.c +++ b/arch/tile/kernel/compat.c | |||
@@ -88,34 +88,14 @@ long compat_sys_sched_rr_get_interval(compat_pid_t pid, | |||
88 | mm_segment_t old_fs = get_fs(); | 88 | mm_segment_t old_fs = get_fs(); |
89 | 89 | ||
90 | set_fs(KERNEL_DS); | 90 | set_fs(KERNEL_DS); |
91 | ret = sys_sched_rr_get_interval(pid, (struct timespec __user *)&t); | 91 | ret = sys_sched_rr_get_interval(pid, |
92 | (struct timespec __force __user *)&t); | ||
92 | set_fs(old_fs); | 93 | set_fs(old_fs); |
93 | if (put_compat_timespec(&t, interval)) | 94 | if (put_compat_timespec(&t, interval)) |
94 | return -EFAULT; | 95 | return -EFAULT; |
95 | return ret; | 96 | return ret; |
96 | } | 97 | } |
97 | 98 | ||
98 | ssize_t compat_sys_sendfile(int out_fd, int in_fd, compat_off_t __user *offset, | ||
99 | size_t count) | ||
100 | { | ||
101 | mm_segment_t old_fs = get_fs(); | ||
102 | int ret; | ||
103 | off_t of; | ||
104 | |||
105 | if (offset && get_user(of, offset)) | ||
106 | return -EFAULT; | ||
107 | |||
108 | set_fs(KERNEL_DS); | ||
109 | ret = sys_sendfile(out_fd, in_fd, offset ? (off_t __user *)&of : NULL, | ||
110 | count); | ||
111 | set_fs(old_fs); | ||
112 | |||
113 | if (offset && put_user(of, offset)) | ||
114 | return -EFAULT; | ||
115 | return ret; | ||
116 | } | ||
117 | |||
118 | |||
119 | /* | 99 | /* |
120 | * The usual compat_sys_msgsnd() and _msgrcv() seem to be assuming | 100 | * The usual compat_sys_msgsnd() and _msgrcv() seem to be assuming |
121 | * some different calling convention than our normal 32-bit tile code. | 101 | * some different calling convention than our normal 32-bit tile code. |
@@ -177,6 +157,10 @@ long tile_compat_sys_msgrcv(int msqid, | |||
177 | /* Pass full 64-bit values through ptrace. */ | 157 | /* Pass full 64-bit values through ptrace. */ |
178 | #define compat_sys_ptrace tile_compat_sys_ptrace | 158 | #define compat_sys_ptrace tile_compat_sys_ptrace |
179 | 159 | ||
160 | /* | ||
161 | * Note that we can't include <linux/unistd.h> here since the header | ||
162 | * guard will defeat us; <asm/unistd.h> checks for __SYSCALL as well. | ||
163 | */ | ||
180 | void *compat_sys_call_table[__NR_syscalls] = { | 164 | void *compat_sys_call_table[__NR_syscalls] = { |
181 | [0 ... __NR_syscalls-1] = sys_ni_syscall, | 165 | [0 ... __NR_syscalls-1] = sys_ni_syscall, |
182 | #include <asm/unistd.h> | 166 | #include <asm/unistd.h> |