patch-2.4.23 linux-2.4.23/arch/sparc64/kernel/sys_sparc32.c

Next file: linux-2.4.23/arch/sparc64/kernel/sys_sunos32.c
Previous file: linux-2.4.23/arch/sparc64/kernel/smp.c
Back to the patch index
Back to the overall index

diff -urN linux-2.4.22/arch/sparc64/kernel/sys_sparc32.c linux-2.4.23/arch/sparc64/kernel/sys_sparc32.c
@@ -415,7 +415,7 @@
  *
  * This is really horribly ugly.
  */
-#define IPCOP_MASK(__x)	(1UL << (__x))
+#define IPCOP_MASK(__x)	(1UL << ((__x)&~IPC_64))
 static int do_sys32_semctl(int first, int second, int third, void *uptr)
 {
 	union semun fourth;
@@ -427,7 +427,7 @@
 	err = -EFAULT;
 	if (get_user (pad, (u32 *)uptr))
 		goto out;
-	if(third == SETVAL)
+	if ((third & ~IPC_64) == SETVAL)
 		fourth.val = (int)pad;
 	else
 		fourth.__pad = (void *)A(pad);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)