Commit 5da0c2c3 authored by Manfred Spraul's avatar Manfred Spraul Committed by Linus Torvalds

[PATCH] rename shmat to make it clear it isn't a system call entrypoint

This renames sys_shmat to do_shmat.  Additionally, I've replaced the
cond_syscall with a conditional inline function.

It touches all archs - only i386 is tested.
parent 8b766794
......@@ -464,7 +464,7 @@ osf_shmat(int shmid, void *shmaddr, int shmflg)
unsigned long raddr;
long err;
err = sys_shmat(shmid, shmaddr, shmflg, &raddr);
err = do_shmat(shmid, shmaddr, shmflg, &raddr);
/*
* This works because all user-level addresses are
......
......@@ -210,7 +210,7 @@ asmlinkage int sys_ipc (uint call, int first, int second, int third, void *ptr,
switch (version) {
default: {
ulong raddr;
ret = sys_shmat (first, (char *) ptr, second, &raddr);
ret = do_shmat (first, (char *) ptr, second, &raddr);
if (ret)
return ret;
return put_user (raddr, (ulong *) third);
......@@ -218,7 +218,7 @@ asmlinkage int sys_ipc (uint call, int first, int second, int third, void *ptr,
case 1: /* iBCS2 emulator entry point */
if (!segment_eq(get_fs(), get_ds()))
return -EINVAL;
return sys_shmat (first, (char *) ptr,
return do_shmat (first, (char *) ptr,
second, (ulong *) third);
}
case SHMDT:
......
......@@ -211,7 +211,7 @@ asmlinkage int sys_ipc (uint call, int first, int second, int third, void *ptr,
switch (version) {
default: {
ulong raddr;
ret = sys_shmat (first, (char *) ptr, second, &raddr);
ret = do_shmat (first, (char *) ptr, second, &raddr);
if (ret)
return ret;
return put_user (raddr, (ulong *) third);
......@@ -219,7 +219,7 @@ asmlinkage int sys_ipc (uint call, int first, int second, int third, void *ptr,
case 1: /* iBCS2 emulator entry point */
if (!segment_eq(get_fs(), get_ds()))
return -EINVAL;
return sys_shmat (first, (char *) ptr,
return do_shmat (first, (char *) ptr,
second, (ulong *) third);
}
case SHMDT:
......
......@@ -155,7 +155,7 @@ asmlinkage int sys_ipc (uint call, int first, int second,
case SHMAT: {
ulong raddr;
ret = sys_shmat (first, (char __user *) ptr, second, &raddr);
ret = do_shmat (first, (char __user *) ptr, second, &raddr);
if (ret)
return ret;
return put_user (raddr, (ulong __user *) third);
......
......@@ -240,7 +240,7 @@ asmlinkage int sys_ipc (uint call, int first, int second,
switch (version) {
default: {
ulong raddr;
ret = sys_shmat (first, (char *) ptr,
ret = do_shmat (first, (char *) ptr,
second, &raddr);
if (ret)
return ret;
......
......@@ -186,7 +186,7 @@ asmlinkage int sys_ipc (uint call, int first, int second,
switch (version) {
default: {
ulong raddr;
ret = sys_shmat (first, (char __user *) ptr, second, &raddr);
ret = do_shmat (first, (char __user *) ptr, second, &raddr);
if (ret)
return ret;
return put_user (raddr, (ulong __user *) third);
......@@ -195,7 +195,7 @@ asmlinkage int sys_ipc (uint call, int first, int second,
if (!segment_eq(get_fs(), get_ds()))
return -EINVAL;
/* The "(ulong *) third" is valid _only_ because of the kernel segment thing */
return sys_shmat (first, (char __user *) ptr, second, (ulong *) third);
return do_shmat (first, (char __user *) ptr, second, (ulong *) third);
}
case SHMDT:
return sys_shmdt ((char __user *)ptr);
......
......@@ -1447,7 +1447,7 @@ shmat32 (int first, int second, int third, int version, void *uptr)
if (version == 1)
return -EINVAL; /* iBCS2 emulator entry point: unsupported */
err = sys_shmat(first, uptr, second, &raddr);
err = do_shmat(first, uptr, second, &raddr);
if (err)
return err;
return put_user(raddr, uaddr);
......
......@@ -98,7 +98,7 @@ ia64_shmat (int shmid, void *shmaddr, int shmflg)
unsigned long raddr;
int retval;
retval = sys_shmat(shmid, shmaddr, shmflg, &raddr);
retval = do_shmat(shmid, shmaddr, shmflg, &raddr);
if (retval < 0)
return retval;
......
......@@ -241,7 +241,7 @@ asmlinkage int sys_ipc (uint call, int first, int second,
switch (version) {
default: {
ulong raddr;
ret = sys_shmat (first, (char *) ptr,
ret = do_shmat (first, (char *) ptr,
second, &raddr);
if (ret)
return ret;
......
......@@ -1460,7 +1460,7 @@ do_sys32_shmat (int first, int second, int third, int version, void *uptr)
if (version == 1)
return err;
err = sys_shmat (first, uptr, second, &raddr);
err = do_shmat (first, uptr, second, &raddr);
if (err)
return err;
err = put_user (raddr, uaddr);
......
......@@ -342,7 +342,7 @@ asmlinkage int sys_ipc (uint call, int first, int second,
switch (version) {
default: {
ulong raddr;
ret = sys_shmat (first, (char *) ptr, second, &raddr);
ret = do_shmat (first, (char *) ptr, second, &raddr);
if (ret)
return ret;
return put_user (raddr, (ulong *) third);
......@@ -350,7 +350,7 @@ asmlinkage int sys_ipc (uint call, int first, int second,
case 1: /* iBCS2 emulator entry point */
if (!segment_eq(get_fs(), get_ds()))
return -EINVAL;
return sys_shmat (first, (char *) ptr, second, (ulong *) third);
return do_shmat (first, (char *) ptr, second, (ulong *) third);
}
case SHMDT:
return sys_shmdt ((char *)ptr);
......
......@@ -968,7 +968,7 @@ asmlinkage int irix_shmsys(int opcode, unsigned long arg0, unsigned long arg1,
{
switch (opcode) {
case 0:
return sys_shmat((int) arg0, (char *)arg1, (int) arg2,
return do_shmat((int) arg0, (char *)arg1, (int) arg2,
(unsigned long *) arg3);
case 1:
return sys_shmctl((int)arg0, (int)arg1, (struct shmid_ds *)arg2);
......
......@@ -173,7 +173,7 @@ long sys_shmat_wrapper(int shmid, char *shmaddr, int shmflag)
unsigned long raddr;
int r;
r = sys_shmat(shmid, shmaddr, shmflag, &raddr);
r = do_shmat(shmid, shmaddr, shmflag, &raddr);
if (r < 0)
return r;
return raddr;
......
......@@ -119,7 +119,7 @@ sys_ipc (uint call, int first, int second, int third, void __user *ptr, long fif
if ((ret = verify_area(VERIFY_WRITE, (ulong __user *) third,
sizeof(ulong))))
break;
ret = sys_shmat (first, (char __user *) ptr, second, &raddr);
ret = do_shmat (first, (char __user *) ptr, second, &raddr);
if (ret)
break;
ret = put_user (raddr, (ulong __user *) third);
......
......@@ -1649,7 +1649,7 @@ do_sys32_shmat(int first, int second, int third, int version, void *uptr)
if (version == 1)
return err;
err = sys_shmat(first, uptr, second, &raddr);
err = do_shmat(first, uptr, second, &raddr);
if (err)
return err;
err = put_user(raddr, uaddr);
......
......@@ -122,7 +122,7 @@ sys_ipc (uint call, int first, int second, long third, void *ptr, long fifth)
switch (version) {
default: {
ulong raddr;
ret = sys_shmat (first, (char *) ptr, second, &raddr);
ret = do_shmat (first, (char *) ptr, second, &raddr);
if (ret)
break;
ret = put_user (raddr, (ulong *) third);
......@@ -132,7 +132,7 @@ sys_ipc (uint call, int first, int second, long third, void *ptr, long fifth)
ret = -EINVAL;
if (!segment_eq(get_fs(), get_ds()))
break;
ret = sys_shmat (first, (char *) ptr, second,
ret = do_shmat (first, (char *) ptr, second,
(ulong *) third);
break;
}
......
......@@ -721,7 +721,7 @@ static int do_sys32_shmat (int first, int second, int third, int version, void *
if (version == 1)
goto out;
err = sys_shmat (first, uptr, second, &raddr);
err = do_shmat (first, uptr, second, &raddr);
if (err)
goto out;
err = put_user (raddr, uaddr);
......
......@@ -225,7 +225,7 @@ asmlinkage __SYS_RETTYPE sys_ipc (uint call, int first, int second,
case SHMAT: {
ulong raddr;
ret = sys_shmat (first, (char *) ptr, second, &raddr);
ret = do_shmat (first, (char *) ptr, second, &raddr);
if (ret)
return ret;
return put_user (raddr, (ulong *) third);
......
......@@ -200,7 +200,7 @@ asmlinkage int sys_ipc(uint call, int first, int second,
switch (version) {
default: {
ulong raddr;
ret = sys_shmat (first, (char __user *) ptr,
ret = do_shmat (first, (char __user *) ptr,
second, &raddr);
if (ret)
return ret;
......@@ -209,7 +209,7 @@ asmlinkage int sys_ipc(uint call, int first, int second,
case 1: /* iBCS2 emulator entry point */
if (!segment_eq(get_fs(), get_ds()))
return -EINVAL;
return sys_shmat (first, (char __user *) ptr,
return do_shmat (first, (char __user *) ptr,
second, (ulong *) third);
}
case SHMDT:
......
......@@ -185,7 +185,7 @@ asmlinkage int sys_ipc (uint call, int first, int second, int third, void __user
switch (version) {
case 0: default: {
ulong raddr;
err = sys_shmat (first, (char __user *) ptr, second, &raddr);
err = do_shmat (first, (char __user *) ptr, second, &raddr);
if (err)
goto out;
err = -EFAULT;
......@@ -195,7 +195,7 @@ asmlinkage int sys_ipc (uint call, int first, int second, int third, void __user
goto out;
}
case 1: /* iBCS2 emulator entry point */
err = sys_shmat (first, (char __user *) ptr, second, (ulong __user *) third);
err = do_shmat (first, (char __user *) ptr, second, (ulong __user *) third);
goto out;
}
case SHMDT:
......
......@@ -1006,8 +1006,8 @@ asmlinkage int sunos_shmsys(int op, unsigned long arg1, unsigned long arg2,
switch(op) {
case 0:
/* sys_shmat(): attach a shared memory area */
rval = sys_shmat((int)arg1,(char *)arg2,(int)arg3,&raddr);
/* do_shmat(): attach a shared memory area */
rval = do_shmat((int)arg1,(char *)arg2,(int)arg3,&raddr);
if(!rval)
rval = (int) raddr;
break;
......
......@@ -254,7 +254,7 @@ asmlinkage int sys_ipc (unsigned call, int first, int second, unsigned long thir
switch (call) {
case SHMAT: {
ulong raddr;
err = sys_shmat (first, (char *) ptr, second, &raddr);
err = do_shmat (first, (char *) ptr, second, &raddr);
if (!err) {
if (put_user(raddr, (ulong __user *) third))
err = -EFAULT;
......
......@@ -642,7 +642,7 @@ static int do_sys32_shmat (int first, int second, int third, int version, void *
if (version == 1)
goto out;
err = sys_shmat (first, uptr, second, &raddr);
err = do_shmat (first, uptr, second, &raddr);
if (err)
goto out;
err = put_user (raddr, uaddr);
......
......@@ -1139,8 +1139,8 @@ asmlinkage int sunos_shmsys(int op, u32 arg1, u32 arg2, u32 arg3)
switch(op) {
case 0:
/* sys_shmat(): attach a shared memory area */
rval = sys_shmat((int)arg1,(char *)A(arg2),(int)arg3,&raddr);
/* do_shmat(): attach a shared memory area */
rval = do_shmat((int)arg1,(char *)A(arg2),(int)arg3,&raddr);
if(!rval)
rval = (int) raddr;
break;
......
......@@ -235,7 +235,7 @@ int sys_ipc (uint call, int first, int second,
switch (version) {
default: {
ulong raddr;
ret = sys_shmat (first, (char *) ptr, second, &raddr);
ret = do_shmat (first, (char *) ptr, second, &raddr);
if (ret)
return ret;
return put_user (raddr, (ulong *) third);
......@@ -243,7 +243,7 @@ int sys_ipc (uint call, int first, int second,
case 1: /* iBCS2 emulator entry point */
if (!segment_eq(get_fs(), get_ds()))
return -EINVAL;
return sys_shmat (first, (char *) ptr, second, (ulong *) third);
return do_shmat (first, (char *) ptr, second, (ulong *) third);
}
case SHMDT:
return sys_shmdt ((char *)ptr);
......
......@@ -106,7 +106,7 @@ sys_ipc (uint call, int first, int second, int third, void *ptr, long fifth)
if ((ret = verify_area(VERIFY_WRITE, (ulong*) third,
sizeof(ulong))))
break;
ret = sys_shmat (first, (char *) ptr, second, &raddr);
ret = do_shmat (first, (char *) ptr, second, &raddr);
if (ret)
break;
ret = put_user (raddr, (ulong *) third);
......@@ -115,7 +115,7 @@ sys_ipc (uint call, int first, int second, int third, void *ptr, long fifth)
case 1: /* iBCS2 emulator entry point */
if (!segment_eq(get_fs(), get_ds()))
break;
ret = sys_shmat (first, (char *) ptr, second,
ret = do_shmat (first, (char *) ptr, second,
(ulong *) third);
break;
}
......
......@@ -457,7 +457,7 @@ shmat32 (int first, int second, int third, int version, void *uptr)
if (version == 1)
return -EINVAL; /* iBCS2 emulator entry point: unsupported */
err = sys_shmat(first, uptr, second, &raddr);
err = do_shmat(first, uptr, second, &raddr);
if (err)
return err;
return put_user(raddr, uaddr);
......
......@@ -155,8 +155,8 @@ asmlinkage long sys_uname(struct new_utsname * name)
asmlinkage long wrap_sys_shmat(int shmid, char *shmaddr, int shmflg)
{
unsigned long raddr;
return sys_shmat(shmid,shmaddr,shmflg,&raddr) ?: (long)raddr;
}
return do_shmat(shmid,shmaddr,shmflg,&raddr) ?: (long)raddr;
}
asmlinkage long sys_time64(long * tloc)
{
......
......@@ -90,7 +90,14 @@ struct shmid_kernel /* private to the kernel */
#define SHM_LOCKED 02000 /* segment will not be swapped */
#define SHM_HUGETLB 04000 /* segment will use huge TLB pages */
long sys_shmat (int shmid, char __user *shmaddr, int shmflg, unsigned long *addr);
#ifdef CONFIG_SYSVIPC
long do_shmat (int shmid, char __user *shmaddr, int shmflg, unsigned long *addr);
#else
inline long do_shmat (int shmid, char __user *shmaddr, int shmflg, unsigned long *addr)
{
return -ENOSYS;
}
#endif
asmlinkage long sys_shmget (key_t key, size_t size, int flag);
asmlinkage long sys_shmdt (char __user *shmaddr);
asmlinkage long sys_shmctl (int shmid, int cmd, struct shmid_ds __user *buf);
......
......@@ -635,7 +635,7 @@ asmlinkage long sys_shmctl (int shmid, int cmd, struct shmid_ds __user *buf)
* "raddr" thing points to kernel space, and there has to be a wrapper around
* this.
*/
asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr)
long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr)
{
struct shmid_kernel *shp;
unsigned long addr;
......
......@@ -258,7 +258,6 @@ cond_syscall(sys_msgsnd)
cond_syscall(sys_msgrcv)
cond_syscall(sys_msgctl)
cond_syscall(sys_shmget)
cond_syscall(sys_shmat)
cond_syscall(sys_shmdt)
cond_syscall(sys_shmctl)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment