svn commit: r229963 - head/sys/contrib/pf/net

Gleb Smirnoff glebius at FreeBSD.org
Wed Jan 11 14:19:04 UTC 2012


Author: glebius
Date: Wed Jan 11 14:19:04 2012
New Revision: 229963
URL: http://svn.freebsd.org/changeset/base/229963

Log:
  Add necessary locking in pfsync_in_ureq().

Modified:
  head/sys/contrib/pf/net/if_pfsync.c

Modified: head/sys/contrib/pf/net/if_pfsync.c
==============================================================================
--- head/sys/contrib/pf/net/if_pfsync.c	Wed Jan 11 14:13:42 2012	(r229962)
+++ head/sys/contrib/pf/net/if_pfsync.c	Wed Jan 11 14:19:04 2012	(r229963)
@@ -1433,6 +1433,9 @@ pfsync_in_ureq(struct pfsync_pkt *pkt, s
 	}
 	ura = (struct pfsync_upd_req *)(mp->m_data + offp);
 
+#ifdef __FreeBSD__
+	PF_LOCK();
+#endif
 	for (i = 0; i < count; i++) {
 		ur = &ura[i];
 
@@ -1450,11 +1453,12 @@ pfsync_in_ureq(struct pfsync_pkt *pkt, s
 			if (ISSET(st->state_flags, PFSTATE_NOSYNC))
 				continue;
 
-			PF_LOCK();
 			pfsync_update_state_req(st);
-			PF_UNLOCK();
 		}
 	}
+#ifdef __FreeBSD__
+	PF_UNLOCK();
+#endif
 
 	return (len);
 }
@@ -2975,7 +2979,7 @@ pfsync_bulk_start(void)
 		printf("pfsync: received bulk update request\n");
 
 #ifdef __FreeBSD__
-	PF_LOCK();
+	PF_LOCK_ASSERT();
 	if (TAILQ_EMPTY(&V_state_list))
 #else
 	if (TAILQ_EMPTY(&state_list))
@@ -2994,9 +2998,6 @@ pfsync_bulk_start(void)
 		pfsync_bulk_status(PFSYNC_BUS_START);
 		callout_reset(&sc->sc_bulk_tmo, 1, pfsync_bulk_update, sc);
 	}
-#ifdef __FreeBSD__
-	PF_UNLOCK();
-#endif
 }
 
 void


More information about the svn-src-head mailing list