serial: 8250: Don't touch RTS modem control while in rs485 mode
authorLukas Wunner <lukas@wunner.de>
Fri, 28 Feb 2020 13:31:01 +0000 (14:31 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Mar 2020 08:52:01 +0000 (09:52 +0100)
commitf45709df7731ad36306a28a3e1af7309d55c35f5
tree2aa45c7185e054b6e5f6007e324c878e67eaa1ac
parentf8c3686c65f099f0915bbf96885765594d675d5b
serial: 8250: Don't touch RTS modem control while in rs485 mode

serial8250_do_set_mctrl() currently allows modifying the RTS modem
control line even when RTS is used as an rs485 Transmit Enable signal.
It is thus possible for user space to interfere with rs485 communication
by invoking a TIOCMSET ioctl().

Ignore such change requests and retain the current RTS polarity when in
rs485 mode.  Note that serial8250_set_mctrl() is always called with
port->lock held, so there's no risk that RTS is changed concurrently.

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Cc: Matwey V. Kornilov <matwey@sai.msu.ru>
Link: https://lore.kernel.org/r/b1ce34ca9bc4d7bdc6e9852fcf30b1f4e37c8a80.1582895077.git.lukas@wunner.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_port.c