Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b140dfe6 authored by Peter Hurley's avatar Peter Hurley Committed by Greg Kroah-Hartman
Browse files

usb: gadget: gserial: Privatize close_wait



close_wait is no longer needed or provided by the tty core.
Move close_wait to struct gs_port.

Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent fef062cb
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -114,6 +114,7 @@ struct gs_port {
	struct gs_buf		port_write_buf;
	wait_queue_head_t	drain_wait;	/* wait while writes drain */
	bool                    write_busy;
	wait_queue_head_t	close_wait;

	/* REVISIT this state ... */
	struct usb_cdc_line_coding port_line_coding;	/* 8-N-1 etc */
@@ -884,7 +885,7 @@ static void gs_close(struct tty_struct *tty, struct file *file)
	pr_debug("gs_close: ttyGS%d (%p,%p) done!\n",
			port->port_num, tty, file);

	wake_up(&port->port.close_wait);
	wake_up(&port->close_wait);
exit:
	spin_unlock_irq(&port->port_lock);
}
@@ -1044,6 +1045,7 @@ gs_port_alloc(unsigned port_num, struct usb_cdc_line_coding *coding)
	tty_port_init(&port->port);
	spin_lock_init(&port->port_lock);
	init_waitqueue_head(&port->drain_wait);
	init_waitqueue_head(&port->close_wait);

	tasklet_init(&port->push, gs_rx_push, (unsigned long) port);

@@ -1074,7 +1076,7 @@ static void gserial_free_port(struct gs_port *port)
{
	tasklet_kill(&port->push);
	/* wait for old opens to finish */
	wait_event(port->port.close_wait, gs_closed(port));
	wait_event(port->close_wait, gs_closed(port));
	WARN_ON(port->port_usb != NULL);
	tty_port_destroy(&port->port);
	kfree(port);