Re: [Patch] SysV SHM is broken on SMP in 2.3.32

Manfred Spraul (manfreds@colorfullife.com)
Tue, 14 Dec 1999 18:46:43 +0100


This is a multi-part message in MIME format.
--------------9582C7E6D4061E341E32AFA2
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Manfred Spraul wrote:
> The patch is wrong: now there is a window where a second cpu could see
> an partially initialized structure. I'll post a patch ASAP.
>
> --
> Manfred

Below it the (hopefully) correct patch. AFAIK there are 2 more bugs in
the ipc code:

* shmctl(SHM_INFO): replace used_segs with shm_ids.in_use.
* fix the 64-bit problems in shm.

These bugs are fixed in the long patch that adds the new shmget64
syscall ( I posted it yesterday). Should I send you an incremental
patch?

--
	Manfred
--------------9582C7E6D4061E341E32AFA2
Content-Type: text/plain; charset=us-ascii;
 name="patch-ipclock"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="patch-ipclock"

// $Header$ // Kernel Version: // VERSION = 2 // PATCHLEVEL = 3 // SUBLEVEL = 32 // EXTRAVERSION = diff -ur --exclude ptrace.h --exclude Makefile --exclude i386-stubs.c --exclude traps.c --exclude fault.c --exclude ioctls.h 2.3/ipc/util.c build-2.3/ipc/util.c --- 2.3/ipc/util.c Wed Dec 8 23:17:05 1999 +++ build-2.3/ipc/util.c Tue Dec 14 18:22:43 1999 @@ -130,7 +130,7 @@ if(ids->seq > ids->seq_max) ids->seq = 0; - ipc_lock(ids,id); + spin_lock(&ids->ary); ids->entries[id].p = new; return id; }

--------------9582C7E6D4061E341E32AFA2--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/