1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-18 15:30:21 +00:00

Disable processing of output data after disabling scroll lock by force.

The syscons code disabled scroll lock inside sc_cnputs() if it's going
to print a system message. The code currently wants to process any TTY
output data as well, but we cannot do this, because the TTY lock is a
sleep mutex, while cnputs() picks up a spin mutex.

Disable the code for now. It solves a panic when a console message is
printed while scroll lock is enabled. One solution would be to
initialize a task structure here.

Reported by:	Paul B. Mahol <onemda gmail com>
This commit is contained in:
Ed Schouten 2008-08-31 10:17:40 +00:00
parent a0ac6fc0bc
commit 0639d527ca
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=182527

View File

@ -1509,7 +1509,9 @@ sc_cnputc(struct consdev *cd, int c)
scr_stat *scp = sc_console;
void *save;
#ifndef SC_NO_HISTORY
#if 0
struct tty *tp;
#endif
#endif /* !SC_NO_HISTORY */
int s;
@ -1526,11 +1528,18 @@ sc_cnputc(struct consdev *cd, int c)
scp->status |= CURSOR_ENABLED;
sc_draw_cursor_image(scp);
}
#if 0
/*
* XXX: Now that TTY's have their own locks, we cannot process
* any data after disabling scroll lock. cnputs already holds a
* spinlock.
*/
tp = SC_DEV(scp->sc, scp->index);
tty_lock(tp);
if (tty_opened(tp))
sctty_outwakeup(tp);
tty_unlock(tp);
#endif
}
#endif /* !SC_NO_HISTORY */