svn commit: r273654 - head/sys/kern

Mateusz Guzik mjg at FreeBSD.org
Sun Oct 26 01:47:56 UTC 2014


Author: mjg
Date: Sun Oct 26 01:47:55 2014
New Revision: 273654
URL: https://svnweb.freebsd.org/changeset/base/273654

Log:
  Now that sysctl_root is only called with sysctl lock in shared mode, update
  its assertion to require that.
  
  Update comment missed in r273400: sysctl_xlock/unlock -> sysctl_xlock/xunlock
  
  Noted by: jhb

Modified:
  head/sys/kern/kern_sysctl.c

Modified: head/sys/kern/kern_sysctl.c
==============================================================================
--- head/sys/kern/kern_sysctl.c	Sun Oct 26 01:41:54 2014	(r273653)
+++ head/sys/kern/kern_sysctl.c	Sun Oct 26 01:47:55 2014	(r273654)
@@ -77,7 +77,7 @@ static MALLOC_DEFINE(M_SYSCTLTMP, "sysct
  * The sysctllock protects the MIB tree.  It also protects sysctl
  * contexts used with dynamic sysctls.  The sysctl_register_oid() and
  * sysctl_unregister_oid() routines require the sysctllock to already
- * be held, so the sysctl_lock() and sysctl_unlock() routines are
+ * be held, so the sysctl_xlock() and sysctl_xunlock() routines are
  * provided for the few places in the kernel which need to use that
  * API rather than using the dynamic API.  Use of the dynamic API is
  * strongly encouraged for most code.
@@ -96,6 +96,7 @@ static struct sx sysctlmemlock;
 #define	SYSCTL_XLOCKED()	sx_xlocked(&sysctllock)
 #define	SYSCTL_ASSERT_LOCKED()	sx_assert(&sysctllock, SA_LOCKED)
 #define	SYSCTL_ASSERT_XLOCKED()	sx_assert(&sysctllock, SA_XLOCKED)
+#define	SYSCTL_ASSERT_SLOCKED()	sx_assert(&sysctllock, SA_SLOCKED)
 #define	SYSCTL_INIT()		sx_init(&sysctllock, "sysctl lock")
 #define	SYSCTL_SLEEP(ch, wmesg, timo)					\
 				sx_sleep(ch, &sysctllock, 0, wmesg, timo)
@@ -1572,7 +1573,7 @@ sysctl_root(SYSCTL_HANDLER_ARGS)
 	struct sysctl_oid *oid;
 	int error, indx, lvl;
 
-	SYSCTL_ASSERT_LOCKED();
+	SYSCTL_ASSERT_SLOCKED();
 
 	error = sysctl_find_oid(arg1, arg2, &oid, &indx, req);
 	if (error)


More information about the svn-src-head mailing list