diff options
| author | Alan Cox <[email protected]> | 2017-06-02 12:49:30 +0000 |
|---|---|---|
| committer | Greg Kroah-Hartman <[email protected]> | 2017-06-03 09:43:46 +0000 |
| commit | 8a8dabf2dd68caff842d38057097c23bc514ea6e (patch) | |
| tree | 98e019474882e4f4ea47ac77e162c86f3540c726 /drivers/tty/serial/sccnxp.c | |
| parent | tty: reserve N_SPEAKUP number (diff) | |
| download | kernel-8a8dabf2dd68caff842d38057097c23bc514ea6e.tar.gz kernel-8a8dabf2dd68caff842d38057097c23bc514ea6e.zip | |
tty: handle the case where we cannot restore a line discipline
Historically the N_TTY driver could never fail but this has become broken over
time. Rather than trying to rewrite half the ldisc layer to fix the breakage
introduce a second level of fallback with an N_NULL ldisc which cannot fail,
and thus restore the guarantees required by the ldisc layer.
We still try and fail to N_TTY first. It's much more useful to find yourself
back in your old ldisc (first attempt) or in N_TTY (second attempt), and while
I'm not aware of any code out there that makes those assumptions it's good to
drive(r) defensively.
Signed-off-by: Alan Cox <[email protected]>
Reported-by: Dmitry Vyukov <[email protected]>
Tested-by: Dmitry Vyukov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'drivers/tty/serial/sccnxp.c')
0 files changed, 0 insertions, 0 deletions
