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:
parent
a0ac6fc0bc
commit
0639d527ca
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=182527
@ -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 */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user