Prevent yet another staircase effect bug in the console device.
Even though I thought I fixed the staircase issue (and I was no longer able to reproduce it), I got some reports of the issue still being there. It turns out the staircase effect still occurred when /dev/console was kept open while killing the getty on the same TTY (ttyv0). For some reason I can't figure out how the old TTY code dealt with that, so I assume the issue has always been there. I only exposed it more by merging consolectl with ttyv0, which means that the issue was present, even on systems without a serial console. I'm now marking the console device as being closed when closing the regular TTY device node. This means that when the getty shuts down, init(8) will open /dev/console, which means the termios attributes will always be reset in this case.
This commit is contained in:
parent
087af44a80
commit
4650ad4cc0
@ -322,14 +322,14 @@ ttydev_close(struct cdev *dev, int fflag, int devtype, struct thread *td)
|
||||
* console.
|
||||
*/
|
||||
MPASS((tp->t_flags & TF_OPENED) != TF_OPENED);
|
||||
if (dev == dev_console)
|
||||
if (dev == dev_console) {
|
||||
tp->t_flags &= ~TF_OPENED_CONS;
|
||||
else
|
||||
tp->t_flags &= ~(TF_OPENED_IN|TF_OPENED_OUT);
|
||||
|
||||
if (tp->t_flags & TF_OPENED) {
|
||||
tty_unlock(tp);
|
||||
return (0);
|
||||
if (tp->t_flags & TF_OPENED) {
|
||||
tty_unlock(tp);
|
||||
return (0);
|
||||
}
|
||||
} else {
|
||||
tp->t_flags &= ~TF_OPENED;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user