]> git.hungrycats.org Git - linux/commitdiff
[PATCH] m32r: modify sys_ipc() to remove useless iBCS2 support code
authorHirokazu Takata <takata@linux-m32r.org>
Fri, 17 Sep 2004 05:06:18 +0000 (22:06 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 17 Sep 2004 05:06:18 +0000 (22:06 -0700)
The useless iBCS2 supporting code is removed.

However, according to old_ syscalls, I would like to keep backward-
compatibility for a while, due to some old deb packages and
executables for m32r.
I'm struggling to rebuild and replace old packages to new ones.
http://debian.linux-m32r.org/

Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/m32r/kernel/sys_m32r.c

index 1d885cfef73c9ee39d3622ea6747dc10703ead80..0849e38293953fd206e7a20fc547d1629dac751d 100644 (file)
@@ -227,21 +227,16 @@ asmlinkage int sys_ipc(uint call, int first, int second,
        case MSGCTL:
                return sys_msgctl (first, second,
                                   (struct msqid_ds __user *) ptr);
-       case SHMAT:
-               switch (version) {
-               default: {
-                       ulong raddr;
-                       ret = do_shmat (first, (char __user *) ptr,
-                                        second, &raddr);
-                       if (ret)
-                               return ret;
-                       return put_user (raddr, (ulong __user *) third);
-               }
-               case 1: /* iBCS2 emulator entry point */
-                       if (!segment_eq(get_fs(), get_ds()))
-                               return -EINVAL;
-                       return do_shmat (first, (char __user *) ptr,
-                                         second, (ulong *) third);
+       case SHMAT: {
+               ulong raddr;
+
+               if ((ret = verify_area(VERIFY_WRITE, (ulong __user *) third,
+                                     sizeof(ulong))))
+                       return ret;
+               ret = do_shmat (first, (char __user *) ptr, second, &raddr);
+               if (ret)
+                       return ret;
+               return put_user (raddr, (ulong __user *) third);
                }
        case SHMDT:
                return sys_shmdt ((char __user *)ptr);