aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile
diff options
context:
space:
mode:
Diffstat (limited to 'arch/tile')
-rw-r--r--arch/tile/include/asm/compat.h11
-rw-r--r--arch/tile/kernel/compat.c43
2 files changed, 0 insertions, 54 deletions
diff --git a/arch/tile/include/asm/compat.h b/arch/tile/include/asm/compat.h
index bf95f55b82b0..4b4b28969a65 100644
--- a/arch/tile/include/asm/compat.h
+++ b/arch/tile/include/asm/compat.h
@@ -242,17 +242,6 @@ long compat_sys_fallocate(int fd, int mode,
242long compat_sys_sched_rr_get_interval(compat_pid_t pid, 242long compat_sys_sched_rr_get_interval(compat_pid_t pid,
243 struct compat_timespec __user *interval); 243 struct compat_timespec __user *interval);
244 244
245/* Versions of compat functions that differ from generic Linux. */
246struct compat_msgbuf;
247long tile_compat_sys_msgsnd(int msqid,
248 struct compat_msgbuf __user *msgp,
249 size_t msgsz, int msgflg);
250long tile_compat_sys_msgrcv(int msqid,
251 struct compat_msgbuf __user *msgp,
252 size_t msgsz, long msgtyp, int msgflg);
253long tile_compat_sys_ptrace(compat_long_t request, compat_long_t pid,
254 compat_long_t addr, compat_long_t data);
255
256/* Tilera Linux syscalls that don't have "compat" versions. */ 245/* Tilera Linux syscalls that don't have "compat" versions. */
257#define compat_sys_flush_cache sys_flush_cache 246#define compat_sys_flush_cache sys_flush_cache
258 247
diff --git a/arch/tile/kernel/compat.c b/arch/tile/kernel/compat.c
index bf5e9d70266c..d67459b9ac2a 100644
--- a/arch/tile/kernel/compat.c
+++ b/arch/tile/kernel/compat.c
@@ -16,7 +16,6 @@
16#define __SYSCALL_COMPAT 16#define __SYSCALL_COMPAT
17 17
18#include <linux/compat.h> 18#include <linux/compat.h>
19#include <linux/msg.h>
20#include <linux/syscalls.h> 19#include <linux/syscalls.h>
21#include <linux/kdev_t.h> 20#include <linux/kdev_t.h>
22#include <linux/fs.h> 21#include <linux/fs.h>
@@ -95,52 +94,10 @@ long compat_sys_sched_rr_get_interval(compat_pid_t pid,
95 return ret; 94 return ret;
96} 95}
97 96
98/*
99 * The usual compat_sys_msgsnd() and _msgrcv() seem to be assuming
100 * some different calling convention than our normal 32-bit tile code.
101 */
102
103/* Already defined in ipc/compat.c, but we need it here. */
104struct compat_msgbuf {
105 compat_long_t mtype;
106 char mtext[1];
107};
108
109long tile_compat_sys_msgsnd(int msqid,
110 struct compat_msgbuf __user *msgp,
111 size_t msgsz, int msgflg)
112{
113 compat_long_t mtype;
114
115 if (get_user(mtype, &msgp->mtype))
116 return -EFAULT;
117 return do_msgsnd(msqid, mtype, msgp->mtext, msgsz, msgflg);
118}
119
120long tile_compat_sys_msgrcv(int msqid,
121 struct compat_msgbuf __user *msgp,
122 size_t msgsz, long msgtyp, int msgflg)
123{
124 long err, mtype;
125
126 err = do_msgrcv(msqid, &mtype, msgp->mtext, msgsz, msgtyp, msgflg);
127 if (err < 0)
128 goto out;
129
130 if (put_user(mtype, &msgp->mtype))
131 err = -EFAULT;
132 out:
133 return err;
134}
135
136/* Provide the compat syscall number to call mapping. */ 97/* Provide the compat syscall number to call mapping. */
137#undef __SYSCALL 98#undef __SYSCALL
138#define __SYSCALL(nr, call) [nr] = (call), 99#define __SYSCALL(nr, call) [nr] = (call),
139 100
140/* The generic versions of these don't work for Tile. */
141#define compat_sys_msgrcv tile_compat_sys_msgrcv
142#define compat_sys_msgsnd tile_compat_sys_msgsnd
143
144/* See comments in sys.c */ 101/* See comments in sys.c */
145#define compat_sys_fadvise64_64 sys32_fadvise64_64 102#define compat_sys_fadvise64_64 sys32_fadvise64_64
146#define compat_sys_readahead sys32_readahead 103#define compat_sys_readahead sys32_readahead