TTY: simserial, use tty_port_close_end
authorJiri Slaby <jslaby@suse.cz>
Mon, 5 Mar 2012 13:52:34 +0000 (14:52 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Mar 2012 20:48:27 +0000 (12:48 -0800)
The code is identical except locking. But added locks to protect
counts do not hurt here. Rather the contrary.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/ia64/hp/sim/simserial.c

index d173dba..53db99a 100644 (file)
@@ -478,13 +478,8 @@ static void rs_close(struct tty_struct *tty, struct file * filp)
        rs_flush_buffer(tty);
        tty_ldisc_flush(tty);
        port->tty = NULL;
-       if (port->blocked_open) {
-               if (port->close_delay)
-                       schedule_timeout_interruptible(port->close_delay);
-               wake_up_interruptible(&port->open_wait);
-       }
-       port->flags &= ~(ASYNC_NORMAL_ACTIVE|ASYNC_CLOSING);
-       wake_up_interruptible(&port->close_wait);
+
+       tty_port_close_end(port, tty);
 }
 
 /*
@@ -706,6 +701,9 @@ static const struct tty_operations hp_ops = {
        .proc_fops = &rs_proc_fops,
 };
 
+static const struct tty_port_operations hp_port_ops = {
+};
+
 /*
  * The serial driver boot-time initialization code!
  */
@@ -742,6 +740,7 @@ static int __init simrs_init(void)
         */
        state = rs_table;
        tty_port_init(&state->port);
+       state->port.ops = &hp_port_ops;
        state->port.close_delay = 0; /* XXX really 0? */
 
        retval = hpsim_get_irq(KEYBOARD_INTR);