Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Feb 2007 18:58:11 GMT
From:      Roman Divacky <rdivacky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 114200 for review
Message-ID:  <200702071858.l17IwBGj041287@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=114200

Change 114200 by rdivacky@rdivacky_witten on 2007/02/07 18:57:25

	Move the free() out of the emul_shared_lock coverage as its not
	sleepable lock anymore.

Affected files ...

.. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#35 edit

Differences ...

==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#35 (text+ko) ====

@@ -187,9 +187,11 @@
 	LIST_REMOVE(em, threads);
 
 	em->shared->refs--;
-	if (em->shared->refs == 0)
+	if (em->shared->refs == 0) {
+		EMUL_SHARED_WUNLOCK(&emul_shared_lock);
 		free(em->shared, M_LINUX);
-	EMUL_SHARED_WUNLOCK(&emul_shared_lock);
+	} else	
+		EMUL_SHARED_WUNLOCK(&emul_shared_lock);
 
 	if (child_clear_tid != NULL) {
 		struct linux_sys_futex_args cup;
@@ -274,9 +276,11 @@
 		PROC_UNLOCK(p);
 
 		em->shared->refs--;
-		if (em->shared->refs == 0)
+		if (em->shared->refs == 0) {
+			EMUL_SHARED_WUNLOCK(&emul_shared_lock);
 			free(em->shared, M_LINUX);
-		EMUL_SHARED_WUNLOCK(&emul_shared_lock);
+		} else
+			EMUL_SHARED_WUNLOCK(&emul_shared_lock);
 
 		free(em, M_LINUX);
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200702071858.l17IwBGj041287>