There are some cases where parity selection is required for passing it forward to a virtualized terminal. In this sepcific use-case, we want to use pty to send and receive serial data to a serial multiplexer. By using a pty, we avoid writing a custom tty driver. There is very little evidence on the reasoning on why this option is hard-coded to be disabled. AFAIK it has been as such since 1996. With the lack of information about why this is, and based on the fact there are other similar fields that are not hard-coded, it is considered safe to enable this option. Still, in order not to be too intrusive about the change, add it only on the condition that the termios flag `EXTPROC` is turned on. This way there is very little chance it will cause any unintended problems in any other implementation. Signed-off-by: Esa Laakso <esa.laakso@xxxxxxxxxxx> Signed-off-by: Esa Laakso <fidelix.laakso@xxxxxxxxx> --- We are looking for some assistance on this patch, or just a green light to submit it, if it is good to go. We would need to know if the change is valid in context of pty, as there seems to be fairly little information about the reasoning behind the hard-coded values. Our guess is that they have been as such forever and nobody has had a reason to change them. We have a reason to change them, and we would like to know if it is safe to do so and possibly contribute in the process. Either by just using the patch for ourselves or submitting it here. For the record, this is my first patch submitted upstream. Please let me know if something is incorrect or missing. --- drivers/tty/pty.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c index 07394fdaf522..e2d9718dcea0 100644 --- a/drivers/tty/pty.c +++ b/drivers/tty/pty.c @@ -267,7 +267,9 @@ static void pty_set_termios(struct tty_struct *tty, } } - tty->termios.c_cflag &= ~(CSIZE | PARENB); + tty->termios.c_cflag &= ~(CSIZE); + if (!L_EXTPROC(tty)) + tty->termios.c_cflag &= ~(PARENB); tty->termios.c_cflag |= (CS8 | CREAD); } -- 2.35.3