Module Name: src Committed By: ozaki-r Date: Wed Nov 15 09:54:18 UTC 2017
Modified Files: src/sys/netinet: tcp_input.c Log Message: Reduce return points (NFC) To generate a diff of this commit: cvs rdiff -u -r1.360 -r1.361 src/sys/netinet/tcp_input.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/netinet/tcp_input.c diff -u src/sys/netinet/tcp_input.c:1.360 src/sys/netinet/tcp_input.c:1.361 --- src/sys/netinet/tcp_input.c:1.360 Thu Aug 3 06:32:51 2017 +++ src/sys/netinet/tcp_input.c Wed Nov 15 09:54:18 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_input.c,v 1.360 2017/08/03 06:32:51 ozaki-r Exp $ */ +/* $NetBSD: tcp_input.c,v 1.361 2017/11/15 09:54:18 ozaki-r Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -148,7 +148,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tcp_input.c,v 1.360 2017/08/03 06:32:51 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tcp_input.c,v 1.361 2017/11/15 09:54:18 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -3806,15 +3806,12 @@ syn_cache_timer(void *arg) mutex_enter(softnet_lock); KERNEL_LOCK(1, NULL); + callout_ack(&sc->sc_timer); if (__predict_false(sc->sc_flags & SCF_DEAD)) { TCP_STATINC(TCP_STAT_SC_DELAYED_FREE); - callout_destroy(&sc->sc_timer); - pool_put(&syn_cache_pool, sc); - KERNEL_UNLOCK_ONE(NULL); - mutex_exit(softnet_lock); - return; + goto free; } if (__predict_false(sc->sc_rxtshift == TCP_MAXRXTSHIFT)) { @@ -3838,9 +3835,7 @@ syn_cache_timer(void *arg) sc->sc_rxtshift++; SYN_CACHE_TIMER_ARM(sc); - KERNEL_UNLOCK_ONE(NULL); - mutex_exit(softnet_lock); - return; + goto out; dropit: TCP_STATINC(TCP_STAT_SC_TIMED_OUT); @@ -3848,8 +3843,12 @@ syn_cache_timer(void *arg) if (sc->sc_ipopts) (void) m_free(sc->sc_ipopts); rtcache_free(&sc->sc_route); + + free: callout_destroy(&sc->sc_timer); pool_put(&syn_cache_pool, sc); + + out: KERNEL_UNLOCK_ONE(NULL); mutex_exit(softnet_lock); }