ctl_ha: don't shutdown threads if scheduler is stopped

In this case, just return.

Reviewed by:	markj
MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D42341
This commit is contained in:
Mitchell Horne
2023-11-23 11:25:54 -04:00
parent d79a9edb5c
commit 9d61fd0849
+4 -1
View File
@@ -909,13 +909,16 @@ ctl_ha_msg_shutdown(struct ctl_softc *ctl_softc)
{
struct ha_softc *softc = &ha_softc;
if (SCHEDULER_STOPPED())
return;
/* Disconnect and shutdown threads. */
mtx_lock(&softc->ha_lock);
if (softc->ha_shutdown < 2) {
softc->ha_shutdown = 1;
softc->ha_wakeup = 1;
wakeup(&softc->ha_wakeup);
while (softc->ha_shutdown < 2 && !SCHEDULER_STOPPED()) {
while (softc->ha_shutdown < 2) {
msleep(&softc->ha_wakeup, &softc->ha_lock, 0,
"shutdown", hz);
}