kernel: Remove global PROC_LOCK and PROC_UNLOCK definitions
authorFrançois Tigeot <ftigeot@wolfpond.org>
Mon, 22 Jul 2013 11:46:05 +0000 (13:46 +0200)
committerFrançois Tigeot <ftigeot@wolfpond.org>
Mon, 22 Jul 2013 12:09:06 +0000 (14:09 +0200)
Locking in this area varies so much between FreeBSD and DragonFly
that it's best to determine what to do with these macros on a
case-by-case basis

doc/porting_drivers.txt
sys/sys/proc.h

index c084e73..4877f85 100644 (file)
@@ -168,6 +168,19 @@ $DragonFly: doc/notes/porting_drivers.txt,v 1.4 2008/04/06 19:08:30 pavalos Exp
 
 * MPASS macro - Replace it with KKASSERT
 
+
+* PROC_LOCK / PROC_UNLOCK: to be determined on a case-by-case basis
+
+  Some of the time these macros can be removed entirely
+
+  In some cases, some locking must be done; lwkt_gettoken(&proc_token)
+  and the corresponding lwkt_reltoken() call should be good replacements
+
+  It is not a good idea to blindly implement these macros globally, some
+  particular proc subsystem locking semantics differ enough between FreeBSD
+  and DragonFly that this would cause problems
+
+
 * In DragonFly 3.3 format specifier %D was removed from kprintf. As a
   replacement functions kether_ntoa() and hexncpy() were added.
 
index 7453b96..3047485 100644 (file)
@@ -462,10 +462,6 @@ extern void stopevent(struct proc*, unsigned int, unsigned int);
                }                               \
        } while (0)
 
-/* Lock and unlock a process. */
-#define PROC_LOCK(p)    lwkt_gettoken(&proc_token)
-#define PROC_UNLOCK(p)  lwkt_reltoken(&proc_token)
-
 /*
  * Hold process in memory, don't destruct, used by ktrace, procfs, sigio,
  * and signaling code (e.g. ksignal()).