diff options
author | Gleb Smirnoff <glebius@FreeBSD.org> | 2020-01-22 05:51:22 +0000 |
---|---|---|
committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2020-01-22 05:51:22 +0000 |
commit | b95554538682cc140f45a01732598e6c4f92106b (patch) | |
tree | 625a9db83095b0e16534c5d62d54038cf66eb227 /sys/netinet/tcp_syncache.c | |
parent | a7f12fce22ec06b2f49965cf7ba66183849ae664 (diff) | |
download | src-b95554538682cc140f45a01732598e6c4f92106b.tar.gz src-b95554538682cc140f45a01732598e6c4f92106b.zip |
Make ip6_output() and ip_output() require network epoch.
All callers that before may called into these functions
without network epoch now must enter it.
Notes
Notes:
svn path=/head/; revision=356974
Diffstat (limited to 'sys/netinet/tcp_syncache.c')
-rw-r--r-- | sys/netinet/tcp_syncache.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c index 967f673090df..98c90c561d13 100644 --- a/sys/netinet/tcp_syncache.c +++ b/sys/netinet/tcp_syncache.c @@ -467,6 +467,7 @@ syncache_timer(void *xsch) { struct syncache_head *sch = (struct syncache_head *)xsch; struct syncache *sc, *nsc; + struct epoch_tracker et; int tick = ticks; char *s; bool paused; @@ -526,7 +527,9 @@ syncache_timer(void *xsch) free(s, M_TCPLOG); } + NET_EPOCH_ENTER(et); syncache_respond(sc, NULL, TH_SYN|TH_ACK); + NET_EPOCH_EXIT(et); TCPSTAT_INC(tcps_sc_retransmitted); syncache_timeout(sc, sch, 0); } |