diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2012-03-19 20:49:16 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2012-03-19 20:49:16 +0000 |
| commit | 391465f779db8f6d6ac9045a93c6ba1bb6e6aeab (patch) | |
| tree | d83fab0e774442d203ef53e42edb4148b67ef113 /sys/netinet/ip_input.c | |
| parent | 7723eb553dc733dfbd8478a966aa537956d66bbd (diff) | |
Notes
Diffstat (limited to 'sys/netinet/ip_input.c')
| -rw-r--r-- | sys/netinet/ip_input.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index 0664acc4f099..728b50b558a8 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -611,7 +611,7 @@ passin: * into the stack for SIMPLEX interfaces handled by ether_output(). */ if (ifp != NULL && ifp->if_flags & IFF_BROADCAST) { - IF_ADDR_LOCK(ifp); + IF_ADDR_RLOCK(ifp); TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { if (ifa->ifa_addr->sa_family != AF_INET) continue; @@ -619,18 +619,18 @@ passin: if (satosin(&ia->ia_broadaddr)->sin_addr.s_addr == ip->ip_dst.s_addr) { ifa_ref(ifa); - IF_ADDR_UNLOCK(ifp); + IF_ADDR_RUNLOCK(ifp); goto ours; } #ifdef BOOTP_COMPAT if (IA_SIN(ia)->sin_addr.s_addr == INADDR_ANY) { ifa_ref(ifa); - IF_ADDR_UNLOCK(ifp); + IF_ADDR_RUNLOCK(ifp); goto ours; } #endif } - IF_ADDR_UNLOCK(ifp); + IF_ADDR_RUNLOCK(ifp); ia = NULL; } /* RFC 3927 2.7: Do not forward datagrams for 169.254.0.0/16. */ |
