git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tty: Fix USB kref leak
[pandora-kernel.git]
/
drivers
/
usb
/
serial
/
usb-serial.c
diff --git
a/drivers/usb/serial/usb-serial.c
b/drivers/usb/serial/usb-serial.c
index
e7d4246
..
794b5ff
100644
(file)
--- a/
drivers/usb/serial/usb-serial.c
+++ b/
drivers/usb/serial/usb-serial.c
@@
-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);
if (tty->driver_data)
tty->driver_data = NULL;
tty_port_tty_set(&port->port, NULL);
+ tty_kref_put(tty);
}
}
}
}
@@
-1121,7
+1122,8
@@
static int __init usb_serial_init(void)
result = bus_register(&usb_serial_bus_type);
if (result) {
result = bus_register(&usb_serial_bus_type);
if (result) {
- err("%s - registering bus driver failed", __func__);
+ printk(KERN_ERR "usb-serial: %s - registering bus driver "
+ "failed\n", __func__);
goto exit_bus;
}
goto exit_bus;
}
@@
-1142,25
+1144,28
@@
static int __init usb_serial_init(void)
tty_set_operations(usb_serial_tty_driver, &serial_ops);
result = tty_register_driver(usb_serial_tty_driver);
if (result) {
tty_set_operations(usb_serial_tty_driver, &serial_ops);
result = tty_register_driver(usb_serial_tty_driver);
if (result) {
- err("%s - tty_register_driver failed", __func__);
+ printk(KERN_ERR "usb-serial: %s - tty_register_driver failed\n",
+ __func__);
goto exit_reg_driver;
}
/* register the USB driver */
result = usb_register(&usb_serial_driver);
if (result < 0) {
goto exit_reg_driver;
}
/* register the USB driver */
result = usb_register(&usb_serial_driver);
if (result < 0) {
- err("%s - usb_register failed", __func__);
+ printk(KERN_ERR "usb-serial: %s - usb_register failed\n",
+ __func__);
goto exit_tty;
}
/* register the generic driver, if we should */
result = usb_serial_generic_register(debug);
if (result < 0) {
goto exit_tty;
}
/* register the generic driver, if we should */
result = usb_serial_generic_register(debug);
if (result < 0) {
- err("%s - registering generic driver failed", __func__);
+ printk(KERN_ERR "usb-serial: %s - registering generic "
+ "driver failed\n", __func__);
goto exit_generic;
}
goto exit_generic;
}
-
info(DRIVER_DESC
);
+
printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_DESC "\n"
);
return result;
return result;
@@
-1174,7
+1179,8
@@
exit_reg_driver:
bus_unregister(&usb_serial_bus_type);
exit_bus:
bus_unregister(&usb_serial_bus_type);
exit_bus:
- err("%s - returning with error %d", __func__, result);
+ printk(KERN_ERR "usb-serial: %s - returning with error %d\n",
+ __func__, result);
put_tty_driver(usb_serial_tty_driver);
return result;
}
put_tty_driver(usb_serial_tty_driver);
return result;
}
@@
-1233,11
+1239,11
@@
int usb_serial_register(struct usb_serial_driver *driver)
retval = usb_serial_bus_register(driver);
if (retval) {
retval = usb_serial_bus_register(driver);
if (retval) {
- err("problem %d when registering driver %s",
-
retval, driver->description);
+ printk(KERN_ERR "usb-serial: problem %d when registering "
+
"driver %s\n",
retval, driver->description);
list_del(&driver->driver_list);
} else
list_del(&driver->driver_list);
} else
-
info("USB Serial support registered for %s
",
+
printk(KERN_INFO "USB Serial support registered for %s\n
",
driver->description);
return retval;
driver->description);
return retval;
@@
-1248,7
+1254,8
@@
EXPORT_SYMBOL_GPL(usb_serial_register);
void usb_serial_deregister(struct usb_serial_driver *device)
{
/* must be called with BKL held */
void usb_serial_deregister(struct usb_serial_driver *device)
{
/* must be called with BKL held */
- info("USB Serial deregistering driver %s", device->description);
+ printk(KERN_INFO "USB Serial deregistering driver %s\n",
+ device->description);
list_del(&device->driver_list);
usb_serial_bus_deregister(device);
}
list_del(&device->driver_list);
usb_serial_bus_deregister(device);
}