OSDN Git Service

tty: Simplify tty_release_checks() interface
authorPeter Hurley <peter@hurleysoftware.com>
Wed, 5 Nov 2014 17:12:59 +0000 (12:12 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 6 Nov 2014 02:43:27 +0000 (18:43 -0800)
Passing the 'other' tty to tty_release_checks() only makes sense
for a pty pair; make o_tty scope local instead.

Reviewed-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/tty_io.c

index cd95508..e927650 100644 (file)
@@ -1702,8 +1702,7 @@ static void release_tty(struct tty_struct *tty, int idx)
  *     Performs some paranoid checking before true release of the @tty.
  *     This is a no-op unless TTY_PARANOIA_CHECK is defined.
  */
-static int tty_release_checks(struct tty_struct *tty, struct tty_struct *o_tty,
-               int idx)
+static int tty_release_checks(struct tty_struct *tty, int idx)
 {
 #ifdef TTY_PARANOIA_CHECK
        if (idx < 0 || idx >= tty->driver->num) {
@@ -1722,6 +1721,8 @@ static int tty_release_checks(struct tty_struct *tty, struct tty_struct *o_tty,
                return -1;
        }
        if (tty->driver->other) {
+               struct tty_struct *o_tty = tty->link;
+
                if (o_tty != tty->driver->other->ttys[idx]) {
                        printk(KERN_DEBUG "%s: other->table[%d] not o_tty for (%s)\n",
                                        __func__, idx, tty->name);
@@ -1777,7 +1778,7 @@ int tty_release(struct inode *inode, struct file *filp)
        /* Review: parallel close */
        o_tty = tty->link;
 
-       if (tty_release_checks(tty, o_tty, idx)) {
+       if (tty_release_checks(tty, idx)) {
                tty_unlock(tty);
                return 0;
        }