summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_timewait.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2004-08-06 03:45:45 +0000
committerrwatson <rwatson@FreeBSD.org>2004-08-06 03:45:45 +0000
commit11a2e8ce3c40516b1b505be3d5cdbf720ba8069f (patch)
tree38d3ac3c4e0dee27c2bff0875fc15138701f62ba /sys/netinet/tcp_timewait.c
parent6680706c2bf89170fdfb9bd5bc9332aa7319a17a (diff)
downloadFreeBSD-src-11a2e8ce3c40516b1b505be3d5cdbf720ba8069f.zip
FreeBSD-src-11a2e8ce3c40516b1b505be3d5cdbf720ba8069f.tar.gz
Pass pcbinfo structures to in6_pcbnotify() rather than pcbhead
structures, allowing in6_pcbnotify() to lock the pcbinfo and each inpcb that it notifies of ICMPv6 events. This prevents inpcb assertions from firing when IPv6 generates and delievers event notifications for inpcbs. Reported by: kuriyama Tested by: kuriyama
Diffstat (limited to 'sys/netinet/tcp_timewait.c')
-rw-r--r--sys/netinet/tcp_timewait.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet/tcp_timewait.c b/sys/netinet/tcp_timewait.c
index 1e23552..cab3e6b 100644
--- a/sys/netinet/tcp_timewait.c
+++ b/sys/netinet/tcp_timewait.c
@@ -1236,7 +1236,7 @@ tcp6_ctlinput(cmd, sa, d)
bzero(&th, sizeof(th));
m_copydata(m, off, sizeof(*thp), (caddr_t)&th);
- in6_pcbnotify(&tcb, sa, th.th_dport,
+ in6_pcbnotify(&tcbinfo, sa, th.th_dport,
(struct sockaddr *)ip6cp->ip6c_src,
th.th_sport, cmd, NULL, notify);
@@ -1247,7 +1247,7 @@ tcp6_ctlinput(cmd, sa, d)
inc.inc_isipv6 = 1;
syncache_unreach(&inc, &th);
} else
- in6_pcbnotify(&tcb, sa, 0, (const struct sockaddr *)sa6_src,
+ in6_pcbnotify(&tcbinfo, sa, 0, (const struct sockaddr *)sa6_src,
0, cmd, NULL, notify);
}
#endif /* INET6 */
OpenPOWER on IntegriCloud