summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormlaier <mlaier@FreeBSD.org>2005-09-11 11:55:39 +0000
committermlaier <mlaier@FreeBSD.org>2005-09-11 11:55:39 +0000
commitae191726d9a460464edd8207299d0ae5705fbb6d (patch)
treebeefcc07f33f97d585fe0de7b25354c0f76a6fad
parent3af413ca70b1a91cb939973f7faec58a43a5963c (diff)
downloadFreeBSD-src-ae191726d9a460464edd8207299d0ae5705fbb6d.zip
FreeBSD-src-ae191726d9a460464edd8207299d0ae5705fbb6d.tar.gz
Stop leaking a lock. This used to cause a propagate_priority() page fault
when setting syncdev and syncpeer. Reported by: Dominic Marks
-rw-r--r--sys/contrib/pf/net/if_pfsync.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/contrib/pf/net/if_pfsync.c b/sys/contrib/pf/net/if_pfsync.c
index 1ebaba9..971eea7 100644
--- a/sys/contrib/pf/net/if_pfsync.c
+++ b/sys/contrib/pf/net/if_pfsync.c
@@ -1135,14 +1135,14 @@ pfsyncioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
imo->imo_multicast_ifp = sc->sc_sync_ifp;
imo->imo_multicast_ttl = PFSYNC_DFLTTL;
imo->imo_multicast_loop = 0;
+#ifdef __FreeBSD__
+ PF_LOCK();
+#endif
}
if (sc->sc_sync_ifp ||
sc->sc_sendaddr.s_addr != INADDR_PFSYNC_GROUP) {
/* Request a full state table update. */
-#ifdef __FreeBSD__
- PF_LOCK();
-#endif
sc->sc_ureq_sent = time_uptime;
#if NCARP > 0
if (pfsync_sync_ok)
OpenPOWER on IntegriCloud