usb: gadget: gserial: Privatize close_wait
authorPeter Hurley <peter@hurleysoftware.com>
Sat, 10 Oct 2015 20:00:53 +0000 (16:00 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 18 Oct 2015 04:11:29 +0000 (21:11 -0700)
close_wait is no longer needed or provided by the tty core.
Move close_wait to struct gs_port.

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/function/u_serial.c

index 7ee057930ae71793bcbd2777cb275572af21c295..42894f58016eab5fae91534cdefec3fc3bb77e3e 100644 (file)
@@ -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);