aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/vt
diff options
context:
space:
mode:
authorAlan Cox <alan@linux.intel.com>2012-03-02 09:59:49 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-03-08 14:10:28 -0500
commit99cceb4e50cb67720e779f6611476bcb611af6b8 (patch)
tree473820bdfe0ac99fd7bd31eaeb6617338b68456e /drivers/tty/vt
parent20f62579dccc84428554b914e24a312a6554f841 (diff)
vt: waitevent is self locked so drop the tty_lock
Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/vt')
-rw-r--r--drivers/tty/vt/vt_ioctl.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c
index c6720be8d210..ede2ef18d2fb 100644
--- a/drivers/tty/vt/vt_ioctl.c
+++ b/drivers/tty/vt/vt_ioctl.c
@@ -130,7 +130,7 @@ static void vt_event_wait(struct vt_event_wait *vw)
130 list_add(&vw->list, &vt_events); 130 list_add(&vw->list, &vt_events);
131 spin_unlock_irqrestore(&vt_event_lock, flags); 131 spin_unlock_irqrestore(&vt_event_lock, flags);
132 /* Wait for it to pass */ 132 /* Wait for it to pass */
133 wait_event_interruptible_tty(vt_event_waitqueue, vw->done); 133 wait_event_interruptible(vt_event_waitqueue, vw->done);
134 /* Dequeue it */ 134 /* Dequeue it */
135 spin_lock_irqsave(&vt_event_lock, flags); 135 spin_lock_irqsave(&vt_event_lock, flags);
136 list_del(&vw->list); 136 list_del(&vw->list);
@@ -671,11 +671,8 @@ int vt_ioctl(struct tty_struct *tty,
671 return -EPERM; 671 return -EPERM;
672 if (arg == 0 || arg > MAX_NR_CONSOLES) 672 if (arg == 0 || arg > MAX_NR_CONSOLES)
673 ret = -ENXIO; 673 ret = -ENXIO;
674 else { 674 else
675 tty_lock();
676 ret = vt_waitactive(arg); 675 ret = vt_waitactive(arg);
677 tty_unlock();
678 }
679 break; 676 break;
680 677
681 /* 678 /*
@@ -1426,14 +1423,10 @@ int vt_move_to_console(unsigned int vt, int alloc)
1426 return -EIO; 1423 return -EIO;
1427 } 1424 }
1428 console_unlock(); 1425 console_unlock();
1429 /* Review: I don't see why we need tty_lock here FIXME */
1430 tty_lock();
1431 if (vt_waitactive(vt + 1)) { 1426 if (vt_waitactive(vt + 1)) {
1432 pr_debug("Suspend: Can't switch VCs."); 1427 pr_debug("Suspend: Can't switch VCs.");
1433 tty_unlock();
1434 return -EINTR; 1428 return -EINTR;
1435 } 1429 }
1436 tty_unlock();
1437 return prev; 1430 return prev;
1438} 1431}
1439 1432