svn commit: r297738 - head/sys/netinet
Bjoern A. Zeeb
bz at FreeBSD.org
Sat Apr 9 10:58:09 UTC 2016
Author: bz
Date: Sat Apr 9 10:58:08 2016
New Revision: 297738
URL: https://svnweb.freebsd.org/changeset/base/297738
Log:
Mfp: r296259
We attach the "counter" to the tcpcbs. Thus don't free the
TCP Fastopen zone before the tcpcbs are gone, as otherwise
the zone won't be empty.
With that it should be safe to destroy the "tfo" zone without
leaking the memory.
PR: 164763
Reviewed by: gnn
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D5731
Modified:
head/sys/netinet/tcp_fastopen.c
head/sys/netinet/tcp_subr.c
Modified: head/sys/netinet/tcp_fastopen.c
==============================================================================
--- head/sys/netinet/tcp_fastopen.c Sat Apr 9 10:53:21 2016 (r297737)
+++ head/sys/netinet/tcp_fastopen.c Sat Apr 9 10:58:08 2016 (r297738)
@@ -204,7 +204,7 @@ void
tcp_fastopen_init(void)
{
V_counter_zone = uma_zcreate("tfo", sizeof(unsigned int),
- NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+ NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
rm_init(&V_tcp_fastopen_keylock, "tfo_keylock");
callout_init_rm(&V_tcp_fastopen_autokey_ctx.c,
&V_tcp_fastopen_keylock, 0);
Modified: head/sys/netinet/tcp_subr.c
==============================================================================
--- head/sys/netinet/tcp_subr.c Sat Apr 9 10:53:21 2016 (r297737)
+++ head/sys/netinet/tcp_subr.c Sat Apr 9 10:58:08 2016 (r297738)
@@ -738,9 +738,6 @@ tcp_destroy(void)
{
int error;
-#ifdef TCP_RFC7413
- tcp_fastopen_destroy();
-#endif
tcp_hc_destroy();
syncache_destroy();
tcp_tw_destroy();
@@ -748,6 +745,14 @@ tcp_destroy(void)
uma_zdestroy(V_sack_hole_zone);
uma_zdestroy(V_tcpcb_zone);
+#ifdef TCP_RFC7413
+ /*
+ * Cannot free the zone until all tcpcbs are released as we attach
+ * the allocations to them.
+ */
+ tcp_fastopen_destroy();
+#endif
+
error = hhook_head_deregister(V_tcp_hhh[HHOOK_TCP_EST_IN]);
if (error != 0) {
printf("%s: WARNING: unable to deregister helper hook "
More information about the svn-src-head
mailing list