Author: jhb
Date: Tue Feb  7 19:55:58 2012
New Revision: 231157
URL: http://svn.freebsd.org/changeset/base/231157

Log:
  MFC 229614:
  Add new variants of the IF_ADDR_*LOCK*() macros used for protecting
  interface address lists that distinguish read locks from write locks.
  To preserve the KPI, the previous operations are mapped to the write
  lock macros.  The lock is still kept as a mutex for now.

Modified:
  stable/9/sys/net/if_var.h
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/amd64/include/xen/   (props changed)
  stable/9/sys/boot/   (props changed)
  stable/9/sys/boot/i386/efi/   (props changed)
  stable/9/sys/boot/ia64/efi/   (props changed)
  stable/9/sys/boot/ia64/ski/   (props changed)
  stable/9/sys/boot/powerpc/boot1.chrp/   (props changed)
  stable/9/sys/boot/powerpc/ofw/   (props changed)
  stable/9/sys/cddl/contrib/opensolaris/   (props changed)
  stable/9/sys/conf/   (props changed)
  stable/9/sys/contrib/dev/acpica/   (props changed)
  stable/9/sys/contrib/octeon-sdk/   (props changed)
  stable/9/sys/contrib/pf/   (props changed)
  stable/9/sys/contrib/x86emu/   (props changed)

Modified: stable/9/sys/net/if_var.h
==============================================================================
--- stable/9/sys/net/if_var.h   Tue Feb  7 19:53:02 2012        (r231156)
+++ stable/9/sys/net/if_var.h   Tue Feb  7 19:55:58 2012        (r231157)
@@ -248,9 +248,15 @@ typedef void if_init_f_t(void *);
 #define        IF_ADDR_LOCK_INIT(if)   mtx_init(&(if)->if_addr_mtx,            
\
                                    "if_addr_mtx", NULL, MTX_DEF)
 #define        IF_ADDR_LOCK_DESTROY(if)        mtx_destroy(&(if)->if_addr_mtx)
-#define        IF_ADDR_LOCK(if)        mtx_lock(&(if)->if_addr_mtx)
-#define        IF_ADDR_UNLOCK(if)      mtx_unlock(&(if)->if_addr_mtx)
+#define        IF_ADDR_WLOCK(if)       mtx_lock(&(if)->if_addr_mtx)
+#define        IF_ADDR_WUNLOCK(if)     mtx_unlock(&(if)->if_addr_mtx)
+#define        IF_ADDR_RLOCK(if)       mtx_lock(&(if)->if_addr_mtx)
+#define        IF_ADDR_RUNLOCK(if)     mtx_unlock(&(if)->if_addr_mtx)
 #define        IF_ADDR_LOCK_ASSERT(if) mtx_assert(&(if)->if_addr_mtx, MA_OWNED)
+#define        IF_ADDR_WLOCK_ASSERT(if)        mtx_assert(&(if)->if_addr_mtx, 
MA_OWNED)
+/* XXX: Compat. */
+#define        IF_ADDR_LOCK(if)        IF_ADDR_WLOCK(if)
+#define        IF_ADDR_UNLOCK(if)      IF_ADDR_WUNLOCK(if)
 
 /*
  * Function variations on locking macros intended to be used by loadable
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to