TTY: call tty_port_destroy in the rest of drivers
After commit "TTY: move tty buffers to tty_port", the tty buffers are not freed in some drivers. This is because tty_port_destructor is not called whenever a tty_port is freed. This was an assumption I counted with but was unfortunately untrue. So fix the drivers to fulfil this assumption. To be sure, the TTY buffers (and later some stuff) are gone along with the tty_port, we have to call tty_port_destroy at tear-down places. This is mostly where the structure containing a tty_port is freed. This patch does exactly that -- put tty_port_destroy at those places. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

کامیت شده توسط
Greg Kroah-Hartman

والد
d0f59141ca
کامیت
191c5f1027
@@ -2274,6 +2274,7 @@ static void hso_serial_common_free(struct hso_serial *serial)
|
||||
/* unlink and free TX URB */
|
||||
usb_free_urb(serial->tx_urb);
|
||||
kfree(serial->tx_data);
|
||||
tty_port_destroy(&serial->port);
|
||||
}
|
||||
|
||||
static int hso_serial_common_create(struct hso_serial *serial, int num_urbs,
|
||||
@@ -2283,12 +2284,12 @@ static int hso_serial_common_create(struct hso_serial *serial, int num_urbs,
|
||||
int minor;
|
||||
int i;
|
||||
|
||||
tty_port_init(&serial->port);
|
||||
|
||||
minor = get_free_serial_index();
|
||||
if (minor < 0)
|
||||
goto exit;
|
||||
|
||||
tty_port_init(&serial->port);
|
||||
|
||||
/* register our minor number */
|
||||
serial->parent->dev = tty_port_register_device(&serial->port, tty_drv,
|
||||
minor, &serial->parent->interface->dev);
|
||||
|
مرجع در شماره جدید
Block a user