mirror of https://gitee.com/openkylin/linux.git
serial_core: Get a reference for port->tty in uart_remove_one_port()
Suggested-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Geert Uytterhoeven <geert+renesas@linux-m68k.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
63e3ad3252
commit
4c6d5b4d53
|
@ -2645,6 +2645,7 @@ int uart_remove_one_port(struct uart_driver *drv, struct uart_port *uport)
|
|||
{
|
||||
struct uart_state *state = drv->state + uport->line;
|
||||
struct tty_port *port = &state->port;
|
||||
struct tty_struct *tty;
|
||||
int ret = 0;
|
||||
|
||||
BUG_ON(in_interrupt());
|
||||
|
@ -2673,8 +2674,11 @@ int uart_remove_one_port(struct uart_driver *drv, struct uart_port *uport)
|
|||
*/
|
||||
tty_unregister_device(drv->tty_driver, uport->line);
|
||||
|
||||
if (port->tty)
|
||||
tty = tty_port_tty_get(port);
|
||||
if (tty) {
|
||||
tty_vhangup(port->tty);
|
||||
tty_kref_put(tty);
|
||||
}
|
||||
|
||||
/*
|
||||
* If the port is used as a console, unregister it
|
||||
|
|
Loading…
Reference in New Issue