aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/cc
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2021-12-02 21:35:14 +0000
committerCy Schubert <cy@FreeBSD.org>2021-12-02 21:35:14 +0000
commit266f97b5e9a7958e365e78288616a459b40d924a (patch)
tree47846fb735b2e0becce397e048f4a1d63f996a64 /sys/netinet/cc
parenta10253cffea84c0c980a36ba6776b00ed96c3e3b (diff)
parent56f32b0e4cc24d58cae7613188c0b2dcf5ca4a94 (diff)
Diffstat (limited to 'sys/netinet/cc')
-rw-r--r--sys/netinet/cc/cc.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/netinet/cc/cc.c b/sys/netinet/cc/cc.c
index bcda9276d4d9..b49e5940bc7e 100644
--- a/sys/netinet/cc/cc.c
+++ b/sys/netinet/cc/cc.c
@@ -246,13 +246,14 @@ cc_deregister_algo(struct cc_algo *remove_cc)
STAILQ_FOREACH_SAFE(funcs, &cc_list, entries, tmpfuncs) {
if (funcs == remove_cc) {
if (cc_check_default(remove_cc)) {
- CC_LIST_WUNLOCK();
- return(EBUSY);
+ err = EBUSY;
+ break;
}
+ /* Add a temp flag to stop new adds to it */
+ funcs->flags |= CC_MODULE_BEING_REMOVED;
break;
}
}
- remove_cc->flags |= CC_MODULE_BEING_REMOVED;
CC_LIST_WUNLOCK();
err = tcp_ccalgounload(remove_cc);
/*