diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c index 8a4a226c89ec..ed441bd49247 100644 --- a/sys/dev/syscons/syscons.c +++ b/sys/dev/syscons/syscons.c @@ -2233,6 +2233,7 @@ sc_switch_scr(sc_softc_t *sc, u_int next_scr) /* * Is the wanted vty open? Don't allow switching to a closed vty. + * If we are in DDB, don't switch to a vty in the VT_PROCESS mode. * Note that we always allow the user to switch to the kernel * console even if it is closed. */ @@ -2244,6 +2245,11 @@ sc_switch_scr(sc_softc_t *sc, u_int next_scr) DPRINTF(5, ("error 2, requested vty isn't open!\n")); return EINVAL; } + if ((debugger > 0) && (SC_STAT(tp->t_dev)->smode.mode == VT_PROCESS)) { + splx(s); + DPRINTF(5, ("error 3, requested vty is in the VT_PROCESS mode\n")); + return EINVAL; + } } /* this is the start of vty switching process... */