From: Matthew Dillon Date: Mon, 1 Nov 2010 02:38:46 +0000 (-0700) Subject: kernel - Do not back out critical section for exchange_scr() call X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/f48559fd3cbe6d5d532ff56cc0d04c854cd30b01 kernel - Do not back out critical section for exchange_scr() call * The critical section may be protecting a spinlock and cannot be safely backed out when calling exchange_scr(). * Fixes a panic. Reported-by: rob --- diff --git a/sys/dev/misc/syscons/syscons.c b/sys/dev/misc/syscons/syscons.c index 20a779fd60..982ceadfc7 100644 --- a/sys/dev/misc/syscons/syscons.c +++ b/sys/dev/misc/syscons/syscons.c @@ -2540,9 +2540,7 @@ do_switch_scr(sc_softc_t *sc) lwkt_gettoken(&tty_token); vt_proc_alive(sc->new_scp); - crit_exit(); exchange_scr(sc); - crit_enter(); /* sc->cur_scp == sc->new_scp */ wakeup((caddr_t)&sc->cur_scp->smode);