USB: serial: pl2303: new device id for Chilitag
[pandora-kernel.git] / drivers / usb / serial / bus.c
index 7f547dc..a8dc799 100644 (file)
@@ -52,6 +52,7 @@ static int usb_serial_device_probe(struct device *dev)
 {
        struct usb_serial_driver *driver;
        struct usb_serial_port *port;
+       struct device *tty_dev;
        int retval = 0;
        int minor;
 
@@ -73,12 +74,20 @@ static int usb_serial_device_probe(struct device *dev)
        retval = device_create_file(dev, &dev_attr_port_number);
        if (retval) {
                if (driver->port_remove)
-                       retval = driver->port_remove(port);
+                       driver->port_remove(port);
                goto exit;
        }
 
        minor = port->number;
-       tty_register_device(usb_serial_tty_driver, minor, dev);
+       tty_dev = tty_register_device(usb_serial_tty_driver, minor, dev);
+       if (IS_ERR(tty_dev)) {
+               retval = PTR_ERR(tty_dev);
+               device_remove_file(dev, &dev_attr_port_number);
+               if (driver->port_remove)
+                       driver->port_remove(port);
+               goto exit;
+       }
+
        dev_info(&port->serial->dev->dev,
                 "%s converter now attached to ttyUSB%d\n",
                 driver->description, minor);