git: dcf2dfed26ed - main - tcp: unloading a module that is set to default should error.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 02 Dec 2021 11:15:36 UTC
The branch main has been updated by rrs:
URL: https://cgit.FreeBSD.org/src/commit/?id=dcf2dfed26ed34602e17bee9318f0fde9429577e
commit dcf2dfed26ed34602e17bee9318f0fde9429577e
Author: Randall Stewart <rrs@FreeBSD.org>
AuthorDate: 2021-12-02 11:12:16 +0000
Commit: Randall Stewart <rrs@FreeBSD.org>
CommitDate: 2021-12-02 11:12:16 +0000
tcp: unloading a module that is set to default should error.
I just discovered that the return of the EBUSY error was incorrectly
rigged so that you could unload a CC module that was set to default.
Its supposed to be an EBUSY error. Make it so.
Reviewed by: Michael Tuexen
Sponsored by: Netflix Inc.
Differential Revision: https://reviews.freebsd.org/D33229
---
sys/netinet/cc/cc.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/sys/netinet/cc/cc.c b/sys/netinet/cc/cc.c
index b49e5940bc7e..bcda9276d4d9 100644
--- a/sys/netinet/cc/cc.c
+++ b/sys/netinet/cc/cc.c
@@ -246,14 +246,13 @@ 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)) {
- err = EBUSY;
- break;
+ CC_LIST_WUNLOCK();
+ return(EBUSY);
}
- /* 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);
/*