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
This commit is contained in:
Randall Stewart 2021-12-02 06:12:16 -05:00
parent fe96f62d61
commit dcf2dfed26

View File

@ -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);
/*