[Top] [All Lists]

CVS linux

Subject: CVS linux
Date: Tue, 05 Apr 2005 21:37:47 +0100
CVSROOT:        /home/cvs
Module name:    linux
Changes by: 05/04/05 21:37:42

Modified files:
        arch/mips/kernel: syscall.c 
        include/linux  : syscalls.h 

Log message:
        Convert the stupid 4-argument shmat(2) N64 syscall to the 32-bit variant
        for sanity and so it'll match what glibc already expects.

diff -urN linux/arch/mips/kernel/syscall.c linux/arch/mips/kernel/syscall.c
--- linux/arch/mips/kernel/syscall.c    2005/03/08 14:39:39     1.49
+++ linux/arch/mips/kernel/syscall.c    2005/04/05 20:37:42     1.50
@@ -379,17 +379,15 @@
  * Native ABI that is O32 or N64 version
-asmlinkage long sys_shmat(int shmid, char __user *shmaddr,
-                          int shmflg, unsigned long *addr)
+asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg)
-       unsigned long raddr;
-       int err;
+       unsigned long raddr, err;
        err = do_shmat(shmid, shmaddr, shmflg, &raddr);
        if (err)
                return err;
-       return put_user(raddr, addr);
+       return raddr;
diff -urN linux/include/linux/syscalls.h linux/include/linux/syscalls.h
--- linux/include/linux/syscalls.h      2005/01/13 14:06:53     1.11
+++ linux/include/linux/syscalls.h      2005/04/05 20:37:42     1.12
@@ -456,8 +456,12 @@
 asmlinkage long sys_semtimedop(int semid, struct sembuf __user *sops,
                                unsigned nsops,
                                const struct timespec __user *timeout);
+#ifdef __mips__
+asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg);
 asmlinkage long sys_shmat(int shmid, char __user *shmaddr,
                                int shmflg, unsigned long __user *addr);
 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);

<Prev in Thread] Current Thread [Next in Thread>