Skip to content

Commit 1f73b8b

Browse files
Łukasz Bartosikgregkh
authored andcommitted
xhci: dbgtty: fix device unregister
When DbC is disconnected then xhci_dbc_tty_unregister_device() is called. However if there is any user space process blocked on write to DbC terminal device then it will never be signalled and thus stay blocked indifinitely. This fix adds a tty_vhangup() call in xhci_dbc_tty_unregister_device(). The tty_vhangup() wakes up any blocked writers and causes subsequent write attempts to DbC terminal device to fail. Cc: stable <stable@kernel.org> Fixes: dfba217 ("usb: xhci: Add DbC support in xHCI driver") Signed-off-by: Łukasz Bartosik <ukaszb@chromium.org> Link: https://patch.msgid.link/20251119212910.1245694-1-ukaszb@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent b59d4fd commit 1f73b8b

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

drivers/usb/host/xhci-dbgtty.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,12 @@ static void xhci_dbc_tty_unregister_device(struct xhci_dbc *dbc)
550550

551551
if (!port->registered)
552552
return;
553+
/*
554+
* Hang up the TTY. This wakes up any blocked
555+
* writers and causes subsequent writes to fail.
556+
*/
557+
tty_vhangup(port->port.tty);
558+
553559
tty_unregister_device(dbc_tty_driver, port->minor);
554560
xhci_dbc_tty_exit_port(port);
555561
port->registered = false;

0 commit comments

Comments
 (0)