[SSI] openssi/kernel/ipc shm.c,1.31,1.32

Roger Tsang <[email protected]> Mon, 15 Mar 2010 06:22:40 +0000
Newsgroups gmane.linux.cluster.ssic.cvs
Message-ID <[email protected]>
Update of /cvsroot/ssic-linux/openssi/kernel/ipc
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv29610/kernel/ipc

Modified Files:
      Tag: OPENSSI-FC
	shm.c 
Log Message:
IPC (#ifdef IPC_SHM_RACE_FIX):
- Regression:
  - ipc_shm_nodedown() might sleep while holding spinlock.


Index: shm.c
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/ipc/shm.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- shm.c	15 Mar 2010 00:55:17 -0000	1.31
+++ shm.c	15 Mar 2010 06:22:37 -0000	1.32
@@ -1573,6 +1573,7 @@
 	}
 
  	for (id = 0; id <= ids->max_id; id++) {
+retry:
 		shp = shm_lock(id);
 		if (!shp)
 			continue;
@@ -1587,8 +1588,10 @@
 		}
 		if (shp->shm_nattch == 0) {
 			if (!sem_held) {
+				shm_unlock(shp);
 				down(&ids->sem);
 				sem_held = 1;
+				goto retry;
 			}
 			SSI_ASSERT(shp->id == id);
 			ssi_local_destroy(shp);


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev