tcpcb_pool is initialized with IPL_SOFTNET as ipl, so it seems redundant to call pool_put() under splsoftnet()/splx().
ok? Index: netinet/tcp_subr.c =================================================================== RCS file: /cvs/src/sys/netinet/tcp_subr.c,v retrieving revision 1.156 diff -u -p -r1.156 tcp_subr.c --- netinet/tcp_subr.c 24 Sep 2016 14:51:37 -0000 1.156 +++ netinet/tcp_subr.c 19 Dec 2016 15:54:10 -0000 @@ -550,11 +550,8 @@ void tcp_reaper(void *arg) { struct tcpcb *tp = arg; - int s; - s = splsoftnet(); pool_put(&tcpcb_pool, tp); - splx(s); tcpstat.tcps_closed++; }