tty: Use spin_lock_irq() for ctrl_lock when interrupts enabled
authorPeter Hurley <peter@hurleysoftware.com>
Thu, 16 Oct 2014 19:33:25 +0000 (15:33 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 6 Nov 2014 00:34:36 +0000 (16:34 -0800)
Interrupts are enabled in the n_tty_read() loop, ioctl(TIOCPKT)
and pty driver flush_buffer() routine; no need to save and restore
local interrupt state.

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

index 89c4cee253e34419006b670089cc54b0257dde52..d521058ee55a98236fc69ee520ca1eed5dfaae9f 100644 (file)
@@ -2128,7 +2128,6 @@ static ssize_t n_tty_read(struct tty_struct *tty, struct file *file,
        int minimum, time;
        ssize_t retval = 0;
        long timeout;
-       unsigned long flags;
        int packet;
 
        c = job_control(tty, file);
@@ -2174,10 +2173,10 @@ static ssize_t n_tty_read(struct tty_struct *tty, struct file *file,
                        unsigned char cs;
                        if (b != buf)
                                break;
-                       spin_lock_irqsave(&tty->link->ctrl_lock, flags);
+                       spin_lock_irq(&tty->link->ctrl_lock);
                        cs = tty->link->ctrl_status;
                        tty->link->ctrl_status = 0;
-                       spin_unlock_irqrestore(&tty->link->ctrl_lock, flags);
+                       spin_unlock_irq(&tty->link->ctrl_lock);
                        if (tty_put_user(tty, cs, b++)) {
                                retval = -EFAULT;
                                b--;
index 394374789292fd7ce17b004ced6550e17e713172..29b5eeb018560e6f763cd68a6d28e987d5bcebcd 100644 (file)
@@ -178,13 +178,12 @@ static int pty_get_lock(struct tty_struct *tty, int __user *arg)
 /* 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 (get_user(pktmode, arg))
                return -EFAULT;
 
-       spin_lock_irqsave(&tty->ctrl_lock, flags);
+       spin_lock_irq(&tty->ctrl_lock);
        if (pktmode) {
                if (!tty->packet) {
                        tty->packet = 1;
@@ -192,7 +191,7 @@ static int pty_set_pktmode(struct tty_struct *tty, int __user *arg)
                }
        } else
                tty->packet = 0;
-       spin_unlock_irqrestore(&tty->ctrl_lock, flags);
+       spin_unlock_irq(&tty->ctrl_lock);
 
        return 0;
 }
@@ -221,16 +220,15 @@ static int pty_signal(struct tty_struct *tty, int sig)
 static void pty_flush_buffer(struct tty_struct *tty)
 {
        struct tty_struct *to = tty->link;
-       unsigned long flags;
 
        if (!to)
                return;
        /* tty_buffer_flush(to); FIXME */
        if (to->packet) {
-               spin_lock_irqsave(&tty->ctrl_lock, flags);
+               spin_lock_irq(&tty->ctrl_lock);
                tty->ctrl_status |= TIOCPKT_FLUSHWRITE;
                wake_up_interruptible(&to->read_wait);
-               spin_unlock_irqrestore(&tty->ctrl_lock, flags);
+               spin_unlock_irq(&tty->ctrl_lock);
        }
 }