Skip to content

Commit 0f127d5

Browse files
lucasdemarchigregkh
authored andcommitted
xhci: dbgtty: Fix unregister on tty_alloc_driver() failure
commit 25b8dfc upstream. Make sure to set dbc_tty_driver to NULL to match the check in dbc_tty_exit(). For that, make detached error handling path common to the other branch in the same function. Fixes: 4521f16 ("xhci: dbctty: split dbc tty driver registration and unregistration functions.") Cc: stable@vger.kernel.org # v5.10 Cc: Mathias Nyman <mathias.nyman@linux.intel.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Lucas De Marchi <ldemarchi@nvidia.com> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Link: https://patch.msgid.link/20260806142113.2436238-9-mathias.nyman@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 0d0faf3 commit 0f127d5

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

drivers/usb/host/xhci-dbgtty.c

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -628,8 +628,8 @@ int dbc_tty_init(void)
628628
dbc_tty_driver = tty_alloc_driver(64, TTY_DRIVER_REAL_RAW |
629629
TTY_DRIVER_DYNAMIC_DEV);
630630
if (IS_ERR(dbc_tty_driver)) {
631-
idr_destroy(&dbc_tty_minors);
632-
return PTR_ERR(dbc_tty_driver);
631+
ret = PTR_ERR(dbc_tty_driver);
632+
goto fail;
633633
}
634634

635635
dbc_tty_driver->driver_name = "dbc_serial";
@@ -649,11 +649,17 @@ int dbc_tty_init(void)
649649
ret = tty_register_driver(dbc_tty_driver);
650650
if (ret) {
651651
pr_err("Can't register dbc tty driver\n");
652-
tty_driver_kref_put(dbc_tty_driver);
653-
idr_destroy(&dbc_tty_minors);
654-
dbc_tty_driver = NULL;
652+
goto fail_put;
655653
}
656654

655+
return ret;
656+
657+
fail_put:
658+
tty_driver_kref_put(dbc_tty_driver);
659+
fail:
660+
idr_destroy(&dbc_tty_minors);
661+
dbc_tty_driver = NULL;
662+
657663
return ret;
658664
}
659665

0 commit comments

Comments
 (0)