diff options
Diffstat (limited to 'freebsd/sys/netatalk/aarp.c')
-rw-r--r-- | freebsd/sys/netatalk/aarp.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/freebsd/sys/netatalk/aarp.c b/freebsd/sys/netatalk/aarp.c index d8daf757..0d469f1d 100644 --- a/freebsd/sys/netatalk/aarp.c +++ b/freebsd/sys/netatalk/aarp.c @@ -408,7 +408,7 @@ at_aarpinput(struct ifnet *ifp, struct mbuf *m) * Since we don't know the net, we just look for the first * phase 1 address on the interface. */ - IF_ADDR_LOCK(ifp); + IF_ADDR_RLOCK(ifp); for (aa = (struct at_ifaddr *)TAILQ_FIRST(&ifp->if_addrhead); aa; aa = (struct at_ifaddr *)aa->aa_ifa.ifa_link.tqe_next) { @@ -418,12 +418,12 @@ at_aarpinput(struct ifnet *ifp, struct mbuf *m) } } if (aa == NULL) { - IF_ADDR_UNLOCK(ifp); + IF_ADDR_RUNLOCK(ifp); m_freem(m); return; } ifa_ref(&aa->aa_ifa); - IF_ADDR_UNLOCK(ifp); + IF_ADDR_RUNLOCK(ifp); tpa.s_net = spa.s_net = AA_SAT(aa)->sat_addr.s_net; } |