Commit 1f73b8b5 authored by Łukasz Bartosik's avatar Łukasz Bartosik Committed by Greg Kroah-Hartman
Browse files

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: dfba2174 ("usb: xhci: Add DbC support in xHCI driver")
Signed-off-by: default avatarŁukasz Bartosik <ukaszb@chromium.org>
Link: https://patch.msgid.link/20251119212910.1245694-1-ukaszb@google.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b59d4fda
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -550,6 +550,12 @@ static void xhci_dbc_tty_unregister_device(struct xhci_dbc *dbc)

	if (!port->registered)
		return;
	/*
	 * Hang up the TTY. This wakes up any blocked
	 * writers and causes subsequent writes to fail.
	 */
	tty_vhangup(port->port.tty);

	tty_unregister_device(dbc_tty_driver, port->minor);
	xhci_dbc_tty_exit_port(port);
	port->registered = false;