[parisc-linux] Fix msgctl

Matthew Wilcox willy@ldl.fc.hp.com
Mon, 11 Jun 2001 14:36:30 -0600


The switch statement fails to match any cases when IPC_64 is set,
so we must clear it.  This fixes the problem fakeroot was having,
as it could allocate new sysv msg queues, but never free them,
and we're limited to 16 queues.

Index: Makefile
===================================================================
RCS file: /home/cvs/parisc/linux/Makefile,v
retrieving revision 1.50
diff -u -p -r1.50 Makefile
--- Makefile	2001/06/12 01:21:38	1.50
+++ Makefile	2001/06/12 02:33:52
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 4
 SUBLEVEL = 0
-EXTRAVERSION = -pa17
+EXTRAVERSION = -pa18
 
 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 
Index: arch/parisc/kernel/sys_parisc32.c
===================================================================
RCS file: /home/cvs/parisc/linux/arch/parisc/kernel/sys_parisc32.c,v
retrieving revision 1.16
diff -u -p -r1.16 sys_parisc32.c
--- sys_parisc32.c	2001/06/08 13:58:08	1.16
+++ sys_parisc32.c	2001/06/12 02:33:53
@@ -2681,7 +2681,7 @@ asmlinkage long sys32_msgctl (int msqid,
 {
 	int err = -EINVAL;
 
-	switch (cmd) {
+	switch (cmd &~ IPC_64) {
 
 	case IPC_INFO:
 	case MSG_INFO: