tty: serial: 8250: Cleanup p->em485 in serial8250_unregister_port
Formally, currently there is no memory leak, but if
serial8250_ports[line] is reused with other 8250 driver, then em485
will be already activated and it will cause issues.
Fixes: e490c9144c
("tty: Add software emulated RS485 support for 8250")
Signed-off-by: Matwey V. Kornilov <matwey@sai.msu.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
54555919e8
commit
bf2a0be45f
1 changed files with 9 additions and 0 deletions
|
@ -1074,6 +1074,15 @@ void serial8250_unregister_port(int line)
|
|||
struct uart_8250_port *uart = &serial8250_ports[line];
|
||||
|
||||
mutex_lock(&serial_mutex);
|
||||
|
||||
if (uart->em485) {
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&uart->port.lock, flags);
|
||||
serial8250_em485_destroy(uart);
|
||||
spin_unlock_irqrestore(&uart->port.lock, flags);
|
||||
}
|
||||
|
||||
uart_remove_one_port(&serial8250_reg, &uart->port);
|
||||
if (serial8250_isa_devs) {
|
||||
uart->port.flags &= ~UPF_BOOT_AUTOCONF;
|
||||
|
|
Loading…
Reference in a new issue