Merge tag 'module-implicit-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel...
[firefly-linux-kernel-4.4.55.git] / drivers / staging / fwserial / fwserial.c
index fdb2418c5f888b070111ab38a98f7898e9b060e6..b3ea4bb54e2c7a80f25f86f5e01008712d22142a 100644 (file)
@@ -2815,13 +2815,14 @@ static int __init fwserial_init(void)
        /* num_ttys/num_ports must not be set above the static alloc avail */
        if (num_ttys + num_loops > MAX_CARD_PORTS)
                num_ttys = MAX_CARD_PORTS - num_loops;
+
        num_ports = num_ttys + num_loops;
 
        fwtty_driver = tty_alloc_driver(MAX_TOTAL_PORTS, TTY_DRIVER_REAL_RAW
                                        | TTY_DRIVER_DYNAMIC_DEV);
        if (IS_ERR(fwtty_driver)) {
                err = PTR_ERR(fwtty_driver);
-               return err;
+               goto remove_debugfs;
        }
 
        fwtty_driver->driver_name       = KBUILD_MODNAME;
@@ -2923,7 +2924,9 @@ unregister_driver:
        tty_unregister_driver(fwtty_driver);
 put_tty:
        put_tty_driver(fwtty_driver);
+remove_debugfs:
        debugfs_remove_recursive(fwserial_debugfs);
+
        return err;
 }