Author: ae
Date: Tue Mar 19 06:04:17 2013
New Revision: 248491
URL: http://svnweb.freebsd.org/changeset/base/248491

Log:
  Separate the locking macros that are used in the packet flow path
  from others. This helps easy switch to use pfil(4) lock.

Modified:
  head/sys/netpfil/ipfw/ip_fw2.c
  head/sys/netpfil/ipfw/ip_fw_private.h

Modified: head/sys/netpfil/ipfw/ip_fw2.c
==============================================================================
--- head/sys/netpfil/ipfw/ip_fw2.c      Tue Mar 19 05:51:47 2013        
(r248490)
+++ head/sys/netpfil/ipfw/ip_fw2.c      Tue Mar 19 06:04:17 2013        
(r248491)
@@ -1203,9 +1203,9 @@ do {                                                      
        \
                args->f_id.dst_port = dst_port = ntohs(dst_port);
        }
 
-       IPFW_RLOCK(chain);
+       IPFW_PF_RLOCK(chain);
        if (! V_ipfw_vnet_ready) { /* shutting down, leave NOW. */
-               IPFW_RUNLOCK(chain);
+               IPFW_PF_RUNLOCK(chain);
                return (IP_FW_PASS);    /* accept */
        }
        if (args->rule.slot) {
@@ -2459,7 +2459,7 @@ do {                                                      
        \
                retval = IP_FW_DENY;
                printf("ipfw: ouch!, skip past end of rules, denying packet\n");
        }
-       IPFW_RUNLOCK(chain);
+       IPFW_PF_RUNLOCK(chain);
 #ifdef __FreeBSD__
        if (ucred_cache != NULL)
                crfree(ucred_cache);

Modified: head/sys/netpfil/ipfw/ip_fw_private.h
==============================================================================
--- head/sys/netpfil/ipfw/ip_fw_private.h       Tue Mar 19 05:51:47 2013        
(r248490)
+++ head/sys/netpfil/ipfw/ip_fw_private.h       Tue Mar 19 06:04:17 2013        
(r248491)
@@ -278,10 +278,12 @@ struct sockopt;   /* used by tcp_var.h */
 #define        IPFW_RLOCK_ASSERT(_chain)       rw_assert(&(_chain)->rwmtx, 
RA_RLOCKED)
 #define        IPFW_WLOCK_ASSERT(_chain)       rw_assert(&(_chain)->rwmtx, 
RA_WLOCKED)
 
-#define IPFW_RLOCK(p) rw_rlock(&(p)->rwmtx)
-#define IPFW_RUNLOCK(p) rw_runlock(&(p)->rwmtx)
-#define IPFW_WLOCK(p) rw_wlock(&(p)->rwmtx)
-#define IPFW_WUNLOCK(p) rw_wunlock(&(p)->rwmtx)
+#define        IPFW_RLOCK(p)                   rw_rlock(&(p)->rwmtx)
+#define        IPFW_RUNLOCK(p)                 rw_runlock(&(p)->rwmtx)
+#define        IPFW_WLOCK(p)                   rw_wlock(&(p)->rwmtx)
+#define        IPFW_WUNLOCK(p)                 rw_wunlock(&(p)->rwmtx)
+#define        IPFW_PF_RLOCK(p)                IPFW_RLOCK(p)
+#define        IPFW_PF_RUNLOCK(p)              IPFW_RUNLOCK(p)
 
 #define        IPFW_UH_RLOCK_ASSERT(_chain)    rw_assert(&(_chain)->uh_lock, 
RA_RLOCKED)
 #define        IPFW_UH_WLOCK_ASSERT(_chain)    rw_assert(&(_chain)->uh_lock, 
RA_WLOCKED)
_______________________________________________
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