diff options
| author | Michael Tuexen <tuexen@FreeBSD.org> | 2019-08-26 16:23:47 +0000 |
|---|---|---|
| committer | Michael Tuexen <tuexen@FreeBSD.org> | 2019-08-26 16:23:47 +0000 |
| commit | 15ddc5e43ffa893e0a9076294f1369bac43086c1 (patch) | |
| tree | fe4d0d3aaf4a1039047a00c7ba08921cff633f88 | |
| parent | 7d143bd2df47ebcc89c08bc3c5ca1f70807f19e8 (diff) | |
Notes
| -rw-r--r-- | sys/netinet/tcp_ratelimit.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/sys/netinet/tcp_ratelimit.c b/sys/netinet/tcp_ratelimit.c index f5057b833041..c722027850f4 100644 --- a/sys/netinet/tcp_ratelimit.c +++ b/sys/netinet/tcp_ratelimit.c @@ -390,12 +390,10 @@ rt_setup_new_rs(struct ifnet *ifp, int *error) rs->rs_ifp->if_xname, CTLFLAG_RW, 0, ""); - CK_LIST_INSERT_HEAD(&int_rs, rs, next); - /* Unlock to allow the sysctl stuff to allocate */ - mtx_unlock(&rs_mtx); rl_add_syctl_entries(rl_sysctl_root, rs); - /* re-lock for our caller */ mtx_lock(&rs_mtx); + CK_LIST_INSERT_HEAD(&int_rs, rs, next); + mtx_unlock(&rs_mtx); return (rs); } else if ((rl.flags & RT_IS_INDIRECT) == RT_IS_INDIRECT) { memset(rs, 0, sizeof(struct tcp_rate_set)); @@ -410,12 +408,10 @@ rt_setup_new_rs(struct ifnet *ifp, int *error) rs->rs_ifp->if_xname, CTLFLAG_RW, 0, ""); - CK_LIST_INSERT_HEAD(&int_rs, rs, next); - /* Unlock to allow the sysctl stuff to allocate */ - mtx_unlock(&rs_mtx); rl_add_syctl_entries(rl_sysctl_root, rs); - /* re-lock for our caller */ mtx_lock(&rs_mtx); + CK_LIST_INSERT_HEAD(&int_rs, rs, next); + mtx_unlock(&rs_mtx); return (rs); } else if ((rl.flags & RT_IS_FIXED_TABLE) == RT_IS_FIXED_TABLE) { /* Mellanox most likely */ @@ -560,7 +556,6 @@ bail: goto bail; } rs_number_alive++; - CK_LIST_INSERT_HEAD(&int_rs, rs, next); sysctl_ctx_init(&rs->sysctl_ctx); rl_sysctl_root = SYSCTL_ADD_NODE(&rs->sysctl_ctx, SYSCTL_STATIC_CHILDREN(_net_inet_tcp_rl), @@ -568,11 +563,10 @@ bail: rs->rs_ifp->if_xname, CTLFLAG_RW, 0, ""); - /* Unlock to allow the sysctl stuff to allocate */ - mtx_unlock(&rs_mtx); rl_add_syctl_entries(rl_sysctl_root, rs); - /* re-lock for our caller */ mtx_lock(&rs_mtx); + CK_LIST_INSERT_HEAD(&int_rs, rs, next); + mtx_unlock(&rs_mtx); return (rs); } @@ -978,8 +972,8 @@ tcp_rl_ifnet_link(void *arg __unused, struct ifnet *ifp, int link_state) return; } } - rt_setup_new_rs(ifp, &error); mtx_unlock(&rs_mtx); + rt_setup_new_rs(ifp, &error); } static void |
