struct ipw_tty *tty = linux_tty->driver_data;
        int room;
 
+       /* FIXME: Exactly how is the tty object locked here .. */
        if (!tty)
                return -ENODEV;
 
 static int ipw_tiocmget(struct tty_struct *linux_tty, struct file *file)
 {
        struct ipw_tty *tty = linux_tty->driver_data;
+       /* FIXME: Exactly how is the tty object locked here .. */
 
        if (!tty)
                return -ENODEV;
             unsigned int set, unsigned int clear)
 {
        struct ipw_tty *tty = linux_tty->driver_data;
+       /* FIXME: Exactly how is the tty object locked here .. */
 
        if (!tty)
                return -ENODEV;
        if (!tty->open_count)
                return -EINVAL;
 
+       /* FIXME: Exactly how is the tty object locked here .. */
+
        switch (cmd) {
        case TIOCGSERIAL:
                return ipwireless_get_serial_info(tty, (void __user *) arg);
                        }
                        return 0;
 
-               case TCGETS:
-               case TCGETA:
-                       return n_tty_ioctl(linux_tty, file, cmd, arg);
-
-               case TCFLSH:
-                       return n_tty_ioctl(linux_tty, file, cmd, arg);
-
                case FIONREAD:
                        {
                                int val = 0;
                                        return -EFAULT;
                        }
                        return 0;
+               case TCFLSH:
+                       return tty_perform_flush(linux_tty, arg);
                }
        }
-
-       return -ENOIOCTLCMD;
+       return tty_mode_ioctl(linux_tty, file, cmd , arg);
 }
 
 static int add_tty(dev_node_t *nodesp, int j,
                                tty_hangup(ttyj->linux_tty);
                                /* Wait till the tty_hangup has completed */
                                flush_scheduled_work();
+                               /* FIXME: Exactly how is the tty object locked here
+                                  against a parallel ioctl etc */
                                mutex_lock(&ttyj->ipw_tty_mutex);
                        }
                        while (ttyj->open_count)