mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-06 13:55:08 +08:00
[PATCH] m68knommu: add SHM support
It turns out SHMAT, SHMDT, SHMGET and SHMCTL support in sys_ipc() for m68knommu in 2.6 kernel(uClinux-dist-20060803 release) is missing. (copied from m68k sources, report by David Wu <davidwu@arcturusnetworks.com>) Signed-off-by: Greg Ungerer <gerg@uclinux.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
329237c12b
commit
1bddcc50c2
@ -137,7 +137,7 @@ asmlinkage int old_select(struct sel_arg_struct *arg)
|
|||||||
asmlinkage int sys_ipc (uint call, int first, int second,
|
asmlinkage int sys_ipc (uint call, int first, int second,
|
||||||
int third, void *ptr, long fifth)
|
int third, void *ptr, long fifth)
|
||||||
{
|
{
|
||||||
int version;
|
int version, ret;
|
||||||
|
|
||||||
version = call >> 16; /* hack for backward compatibility */
|
version = call >> 16; /* hack for backward compatibility */
|
||||||
call &= 0xffff;
|
call &= 0xffff;
|
||||||
@ -190,6 +190,27 @@ asmlinkage int sys_ipc (uint call, int first, int second,
|
|||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
if (call <= SHMCTL)
|
||||||
|
switch (call) {
|
||||||
|
case SHMAT:
|
||||||
|
switch (version) {
|
||||||
|
default: {
|
||||||
|
ulong raddr;
|
||||||
|
ret = do_shmat (first, ptr, second, &raddr);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
return put_user (raddr, (ulong __user *) third);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case SHMDT:
|
||||||
|
return sys_shmdt (ptr);
|
||||||
|
case SHMGET:
|
||||||
|
return sys_shmget (first, second, third);
|
||||||
|
case SHMCTL:
|
||||||
|
return sys_shmctl (first, second, ptr);
|
||||||
|
default:
|
||||||
|
return -ENOSYS;
|
||||||
|
}
|
||||||
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user