diff options
Diffstat (limited to 'drivers/staging/fwserial/fwserial.c')
-rw-r--r-- | drivers/staging/fwserial/fwserial.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/staging/fwserial/fwserial.c b/drivers/staging/fwserial/fwserial.c index fdb2418c5f88..b3ea4bb54e2c 100644 --- a/drivers/staging/fwserial/fwserial.c +++ b/drivers/staging/fwserial/fwserial.c @@ -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; } |