tty: Prevent tty_port destruction if tty not released
If the tty driver mistakenly drops the last port reference before the tty has been released, issue a diagnostic and abort the port destruction. This will leak memory and may zombify the port, but might otherwise keep the machine in runnable state. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
103fcbe2ee
commit
e3bfea23a6
@ -140,6 +140,10 @@ EXPORT_SYMBOL(tty_port_destroy);
|
||||
static void tty_port_destructor(struct kref *kref)
|
||||
{
|
||||
struct tty_port *port = container_of(kref, struct tty_port, kref);
|
||||
|
||||
/* check if last port ref was dropped before tty release */
|
||||
if (WARN_ON(port->itty))
|
||||
return;
|
||||
if (port->xmit_buf)
|
||||
free_page((unsigned long)port->xmit_buf);
|
||||
tty_port_destroy(port);
|
||||
|
Loading…
Reference in New Issue
Block a user