diff options
author | Alan Cox <alan@linux.intel.com> | 2012-03-02 14:59:49 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-03-08 11:10:28 -0800 |
commit | 99cceb4e50cb67720e779f6611476bcb611af6b8 (patch) | |
tree | 473820bdfe0ac99fd7bd31eaeb6617338b68456e /drivers/tty/vt/vt_ioctl.c | |
parent | 20f62579dccc84428554b914e24a312a6554f841 (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/vt_ioctl.c')
-rw-r--r-- | drivers/tty/vt/vt_ioctl.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c index c6720be8d21..ede2ef18d2f 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) list_add(&vw->list, &vt_events); spin_unlock_irqrestore(&vt_event_lock, flags); /* Wait for it to pass */ - wait_event_interruptible_tty(vt_event_waitqueue, vw->done); + wait_event_interruptible(vt_event_waitqueue, vw->done); /* Dequeue it */ spin_lock_irqsave(&vt_event_lock, flags); list_del(&vw->list); @@ -671,11 +671,8 @@ int vt_ioctl(struct tty_struct *tty, return -EPERM; if (arg == 0 || arg > MAX_NR_CONSOLES) ret = -ENXIO; - else { - tty_lock(); + else ret = vt_waitactive(arg); - tty_unlock(); - } break; /* @@ -1426,14 +1423,10 @@ int vt_move_to_console(unsigned int vt, int alloc) return -EIO; } console_unlock(); - /* Review: I don't see why we need tty_lock here FIXME */ - tty_lock(); if (vt_waitactive(vt + 1)) { pr_debug("Suspend: Can't switch VCs."); - tty_unlock(); return -EINTR; } - tty_unlock(); return prev; } |