tty: Fix USB kref leak
authorAlan Cox <alan@redhat.com>
Thu, 30 Oct 2008 15:54:12 +0000 (15:54 +0000)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 30 Oct 2008 19:09:07 +0000 (12:09 -0700)
When we close we must clear the extra reference we got when we read
port->tty. Setting the port tty NULL will clear the kref held by the driver
but not the one we obtained ourselves while doing the lookup.

Signed-off-by: Alan Cox <alan@redhat.com>
Tested-by: Helge Hafting <helge.hafting@aitel.hist.no>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/usb/serial/usb-serial.c

index 8be3f39891c71c705c61a8a3d95ff53e3289300b..794b5ffe4397bcfd84f38c3d7affaebac6be77af 100644 (file)
@@ -281,6 +281,7 @@ static void serial_close(struct tty_struct *tty, struct file *filp)
                        if (tty->driver_data)
                                tty->driver_data = NULL;
                        tty_port_tty_set(&port->port, NULL);
+                       tty_kref_put(tty);
                }
        }