summaryrefslogtreecommitdiffstats
path: root/sys/netpfil/pf
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2012-12-14 13:01:16 +0000
committerglebius <glebius@FreeBSD.org>2012-12-14 13:01:16 +0000
commit18f1859422888983b0a0dedd4cb57a455fdbeb3d (patch)
tree30158865d67fde4dbdd2a06794fa806c903fb019 /sys/netpfil/pf
parent8f4e1d63dffef09b8b92f74a1452d23c8764aaaf (diff)
downloadFreeBSD-src-18f1859422888983b0a0dedd4cb57a455fdbeb3d.zip
FreeBSD-src-18f1859422888983b0a0dedd4cb57a455fdbeb3d.tar.gz
Fix error in r235991. No-sleep version of IFNET_RLOCK() should
be used here, since we may hold the main pf rulesets rwlock. Reported by: Fleuriot Damien <ml my.gd>
Diffstat (limited to 'sys/netpfil/pf')
-rw-r--r--sys/netpfil/pf/pf_if.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netpfil/pf/pf_if.c b/sys/netpfil/pf/pf_if.c
index c010b65..8b93d1b 100644
--- a/sys/netpfil/pf/pf_if.c
+++ b/sys/netpfil/pf/pf_if.c
@@ -478,10 +478,10 @@ pfi_table_update(struct pfr_ktable *kt, struct pfi_kif *kif, int net, int flags)
if (kif->pfik_ifp != NULL)
pfi_instance_add(kif->pfik_ifp, net, flags);
else if (kif->pfik_group != NULL) {
- IFNET_RLOCK();
+ IFNET_RLOCK_NOSLEEP();
TAILQ_FOREACH(ifgm, &kif->pfik_group->ifg_members, ifgm_next)
pfi_instance_add(ifgm->ifgm_ifp, net, flags);
- IFNET_RUNLOCK();
+ IFNET_RUNLOCK_NOSLEEP();
}
if ((e = pfr_set_addrs(&kt->pfrkt_t, V_pfi_buffer, V_pfi_buffer_cnt, &size2,
OpenPOWER on IntegriCloud