This note contains fixes to the files in ipc.tar.Z to get it to work with linux-0.98.6. I discovered a terrible bug in the ipc init routines which is the cause of the SIGSEGV when you start ipcs (with 0.98.6). Guess it just so happened it did not show up with the memory organization in the old kernel. Cant believe it handled the tests previously with this error .... may be I introduced it after testing ...head-hung-in-shame. In msg.c: (msg_init) The line wwait = (struct wait_queue **) keys[msginfo.msgmni] should be wwait = (struct wait_queue **) &keys[msginfo.msgmni] ^^^ Cant believe it handled the tests previously with this error .... may be I introduced it after testing .... ...head-hung-in-shame Also as pointed out on c.o.l I had to change malloc (x) to kmalloc (x, GFP_KERNEL) .... and free(x) to kfree (x). Some more errors in the same vein in sem.c : (sem_init) The allocation code in sem_init should read: semary = (struct semid_ds *) semalloc; eventz = (struct wait_queue ***) &semary[seminfo.semmni]; eventn = (struct wait_queue ***) &eventz[seminfo.semmni]; lockwait = (struct wait_queue **) &eventn[seminfo.semmni]; keys = (key_t *) &lockwait[seminfo.semmni]; locks = (char *) &keys[seminfo.semmni]; Do let me know of any bugs/problems/suggestions ... I should have a working shared mem implementation in a week or so. krishna balasub@cis.ohio-state.edu