summaryrefslogtreecommitdiffstats
path: root/drivers/s390/char
diff options
context:
space:
mode:
authorAlan Cox <alan@redhat.com>2008-10-13 10:40:43 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2008-10-13 09:51:41 -0700
commit934e6ebf96e8c1a0f299e64129fdaebc1132a427 (patch)
treeab4bd754997b097f06a5cfefd9e3671d56e628f4 /drivers/s390/char
parent2cb5998b5f0ccc886fdda3509059eef297b49577 (diff)
downloadlinux-stable-934e6ebf96e8c1a0f299e64129fdaebc1132a427.tar.gz
linux-stable-934e6ebf96e8c1a0f299e64129fdaebc1132a427.tar.bz2
linux-stable-934e6ebf96e8c1a0f299e64129fdaebc1132a427.zip
tty: Redo current tty locking
Currently it is sometimes locked by the tty mutex and sometimes by the sighand lock. The latter is in fact correct and now we can hand back referenced objects we can fix this up without problems around sleeping functions. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/s390/char')
-rw-r--r--drivers/s390/char/fs3270.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/s390/char/fs3270.c b/drivers/s390/char/fs3270.c
index 3ef5425d0eb8..84fbc90480dc 100644
--- a/drivers/s390/char/fs3270.c
+++ b/drivers/s390/char/fs3270.c
@@ -431,6 +431,7 @@ fs3270_open(struct inode *inode, struct file *filp)
tty = get_current_tty();
if (!tty || tty->driver->major != IBM_TTY3270_MAJOR) {
tty_kref_put(tty);
+ mutex_unlock(&tty_mutex);
rc = -ENODEV;
goto out;
}