Since this ioctl is for pty devices only move it to pty.c.

Suggested-by: Alan Cox <a...@lxorguk.ukuu.org.uk>
Signed-off-by: Cyrill Gorcunov <gorcu...@openvz.org>
CC: "H. Peter Anvin" <h...@zytor.com>
CC: Greg Kroah-Hartman <gre...@linuxfoundation.org>
CC: Pavel Emelyanov <xe...@parallels.com>
CC: Jiri Slaby <jsl...@suse.cz>
---
 drivers/tty/pty.c       |   29 +++++++++++++++++++++++++++++
 drivers/tty/tty_ioctl.c |   20 --------------------
 2 files changed, 29 insertions(+), 20 deletions(-)

Index: tty.git/drivers/tty/pty.c
===================================================================
--- tty.git.orig/drivers/tty/pty.c
+++ tty.git/drivers/tty/pty.c
@@ -174,6 +174,31 @@ static int pty_set_lock(struct tty_struc
        return 0;
 }
 
+/* Set the packet mode on a pty */
+static int pty_set_pktmode(struct tty_struct *tty, int __user *arg)
+{
+       unsigned long flags;
+       int pktmode;
+
+       if (tty->driver->subtype != PTY_TYPE_MASTER)
+               return -ENOTTY;
+
+       if (get_user(pktmode, arg))
+               return -EFAULT;
+
+       spin_lock_irqsave(&tty->ctrl_lock, flags);
+       if (pktmode) {
+               if (!tty->packet) {
+                       tty->packet = 1;
+                       tty->link->ctrl_status = 0;
+               }
+       } else
+               tty->packet = 0;
+       spin_unlock_irqrestore(&tty->ctrl_lock, flags);
+
+       return 0;
+}
+
 /* Send a signal to the slave */
 static int pty_signal(struct tty_struct *tty, int sig)
 {
@@ -393,6 +418,8 @@ static int pty_bsd_ioctl(struct tty_stru
        switch (cmd) {
        case TIOCSPTLCK: /* Set PT Lock (disallow slave open) */
                return pty_set_lock(tty, (int __user *) arg);
+       case TIOCPKT: /* Set PT packet mode */
+               return pty_set_pktmode(tty, (int __user *)arg);
        case TIOCSIG:    /* Send signal to other side of pty */
                return pty_signal(tty, (int) arg);
        }
@@ -507,6 +534,8 @@ static int pty_unix98_ioctl(struct tty_s
        switch (cmd) {
        case TIOCSPTLCK: /* Set PT Lock (disallow slave open) */
                return pty_set_lock(tty, (int __user *)arg);
+       case TIOCPKT: /* Set PT packet mode */
+               return pty_set_pktmode(tty, (int __user *)arg);
        case TIOCGPTN: /* Get PT Number */
                return put_user(tty->index, (unsigned int __user *)arg);
        case TIOCSIG:    /* Send signal to other side of pty */
Index: tty.git/drivers/tty/tty_ioctl.c
===================================================================
--- tty.git.orig/drivers/tty/tty_ioctl.c
+++ tty.git/drivers/tty/tty_ioctl.c
@@ -1153,26 +1153,6 @@ int n_tty_ioctl_helper(struct tty_struct
                return 0;
        case TCFLSH:
                return tty_perform_flush(tty, arg);
-       case TIOCPKT:
-       {
-               int pktmode;
-
-               if (tty->driver->type != TTY_DRIVER_TYPE_PTY ||
-                   tty->driver->subtype != PTY_TYPE_MASTER)
-                       return -ENOTTY;
-               if (get_user(pktmode, (int __user *) arg))
-                       return -EFAULT;
-               spin_lock_irqsave(&tty->ctrl_lock, flags);
-               if (pktmode) {
-                       if (!tty->packet) {
-                               tty->packet = 1;
-                               tty->link->ctrl_status = 0;
-                       }
-               } else
-                       tty->packet = 0;
-               spin_unlock_irqrestore(&tty->ctrl_lock, flags);
-               return 0;
-       }
        default:
                /* Try the mode commands */
                return tty_mode_ioctl(tty, file, cmd, arg);

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to