aboutsummaryrefslogtreecommitdiffstats
path: root/ipc
diff options
context:
space:
mode:
authorHeiko Carstens2014-03-04 04:17:50 -0600
committerHeiko Carstens2014-03-06 09:30:44 -0600
commit5d70a59637911e84687b421afeb4c111a579fb2b (patch)
tree645055f75e5a47120128f17430f82da40fa00eff /ipc
parent625b1d7e812d55df8d42253a134002c006de7468 (diff)
downloadlinux-phy-5d70a59637911e84687b421afeb4c111a579fb2b.tar.gz
linux-phy-5d70a59637911e84687b421afeb4c111a579fb2b.tar.xz
linux-phy-5d70a59637911e84687b421afeb4c111a579fb2b.zip
ipc/compat: convert to COMPAT_SYSCALL_DEFINE
Convert all compat system call functions where all parameter types have a size of four or less than four bytes, or are pointer types to COMPAT_SYSCALL_DEFINE. The implicit casts within COMPAT_SYSCALL_DEFINE will perform proper zero and sign extension to 64 bit of all parameters if needed. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'ipc')
-rw-r--r--ipc/compat.c9
-rw-r--r--ipc/compat_mq.c16
2 files changed, 13 insertions, 12 deletions
diff --git a/ipc/compat.c b/ipc/compat.c
index e1f4ab65660c..98b9016cab6c 100644
--- a/ipc/compat.c
+++ b/ipc/compat.c
@@ -498,7 +498,7 @@ static inline int put_compat_msqid_ds(struct msqid64_ds *m,
498 return err; 498 return err;
499} 499}
500 500
501long compat_sys_msgctl(int first, int second, void __user *uptr) 501COMPAT_SYSCALL_DEFINE3(msgctl, int, first, int, second, void __user *, uptr)
502{ 502{
503 int err, err2; 503 int err, err2;
504 struct msqid64_ds m64; 504 struct msqid64_ds m64;
@@ -668,7 +668,7 @@ static inline int put_compat_shm_info(struct shm_info __user *ip,
668 return err; 668 return err;
669} 669}
670 670
671long compat_sys_shmctl(int first, int second, void __user *uptr) 671COMPAT_SYSCALL_DEFINE3(shmctl, int, first, int, second, void __user *, uptr)
672{ 672{
673 void __user *p; 673 void __user *p;
674 struct shmid64_ds s64; 674 struct shmid64_ds s64;
@@ -749,8 +749,9 @@ long compat_sys_shmctl(int first, int second, void __user *uptr)
749 return err; 749 return err;
750} 750}
751 751
752long compat_sys_semtimedop(int semid, struct sembuf __user *tsems, 752COMPAT_SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf __user *, tsems,
753 unsigned nsops, const struct compat_timespec __user *timeout) 753 unsigned, nsops,
754 const struct compat_timespec __user *, timeout)
754{ 755{
755 struct timespec __user *ts64 = NULL; 756 struct timespec __user *ts64 = NULL;
756 if (timeout) { 757 if (timeout) {
diff --git a/ipc/compat_mq.c b/ipc/compat_mq.c
index 63d7c6de335b..af087fb40bf7 100644
--- a/ipc/compat_mq.c
+++ b/ipc/compat_mq.c
@@ -46,9 +46,9 @@ static inline int put_compat_mq_attr(const struct mq_attr *attr,
46 | __put_user(attr->mq_curmsgs, &uattr->mq_curmsgs); 46 | __put_user(attr->mq_curmsgs, &uattr->mq_curmsgs);
47} 47}
48 48
49asmlinkage long compat_sys_mq_open(const char __user *u_name, 49COMPAT_SYSCALL_DEFINE4(mq_open, const char __user *, u_name,
50 int oflag, compat_mode_t mode, 50 int, oflag, compat_mode_t, mode,
51 struct compat_mq_attr __user *u_attr) 51 struct compat_mq_attr __user *, u_attr)
52{ 52{
53 void __user *p = NULL; 53 void __user *p = NULL;
54 if (u_attr && oflag & O_CREAT) { 54 if (u_attr && oflag & O_CREAT) {
@@ -105,8 +105,8 @@ asmlinkage ssize_t compat_sys_mq_timedreceive(mqd_t mqdes,
105 u_msg_prio, u_ts); 105 u_msg_prio, u_ts);
106} 106}
107 107
108asmlinkage long compat_sys_mq_notify(mqd_t mqdes, 108COMPAT_SYSCALL_DEFINE2(mq_notify, mqd_t, mqdes,
109 const struct compat_sigevent __user *u_notification) 109 const struct compat_sigevent __user *, u_notification)
110{ 110{
111 struct sigevent __user *p = NULL; 111 struct sigevent __user *p = NULL;
112 if (u_notification) { 112 if (u_notification) {
@@ -122,9 +122,9 @@ asmlinkage long compat_sys_mq_notify(mqd_t mqdes,
122 return sys_mq_notify(mqdes, p); 122 return sys_mq_notify(mqdes, p);
123} 123}
124 124
125asmlinkage long compat_sys_mq_getsetattr(mqd_t mqdes, 125COMPAT_SYSCALL_DEFINE3(mq_getsetattr, mqd_t, mqdes,
126 const struct compat_mq_attr __user *u_mqstat, 126 const struct compat_mq_attr __user *, u_mqstat,
127 struct compat_mq_attr __user *u_omqstat) 127 struct compat_mq_attr __user *, u_omqstat)
128{ 128{
129 struct mq_attr mqstat; 129 struct mq_attr mqstat;
130 struct mq_attr __user *p = compat_alloc_user_space(2 * sizeof(*p)); 130 struct mq_attr __user *p = compat_alloc_user_space(2 * sizeof(*p));