diff options
author | glebius <glebius@FreeBSD.org> | 2012-12-14 13:01:16 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2012-12-14 13:01:16 +0000 |
commit | 18f1859422888983b0a0dedd4cb57a455fdbeb3d (patch) | |
tree | 30158865d67fde4dbdd2a06794fa806c903fb019 /sys/netpfil | |
parent | 8f4e1d63dffef09b8b92f74a1452d23c8764aaaf (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/netpfil/pf/pf_if.c | 4 |
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, |