PERFORCE change 114195 for review

Roman Divacky rdivacky at FreeBSD.org
Wed Feb 7 18:33:38 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=114195

Change 114195 by rdivacky at rdivacky_witten on 2007/02/07 18:33:12

	Cache the em->pdeath_signal in a local variable and move the copyout
	out of the emul_lock coverage.

Affected files ...

.. //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#56 edit

Differences ...

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

@@ -1652,6 +1652,7 @@
 	struct proc *p = td->td_proc;
 	char comm[LINUX_MAX_COMM_LEN];
 	struct linux_emuldata *em;
+	int pdeath_signal;
 
 #ifdef DEBUG
 	if (ldebug(prctl))
@@ -1671,10 +1672,11 @@
 	case LINUX_PR_GET_PDEATHSIG:
 		em = em_find(p, EMUL_DOLOCK);
 		KASSERT(em != NULL, ("prctl: emuldata not found.\n"));
-		error = copyout(&em->pdeath_signal,
+		pdeath_signal = em->pdeath_signal;
+		EMUL_UNLOCK(&emul_lock);
+		error = copyout(&pdeath_signal,
 		    (void *)(register_t)args->arg2,
-		    sizeof(em->pdeath_signal));
-		EMUL_UNLOCK(&emul_lock);
+		    sizeof(pdeath_signal));
 		break;
 	case LINUX_PR_SET_NAME:
 		/*


More information about the p4-projects mailing list