[PATCH 1/1] drivers/tty: Fix missed unlocks for tty_release

From: Li, Zhen-Hua
Date: Sun Dec 08 2013 - 22:20:31 EST


In function tty_release, there are two unlock not called while
breaking from a while. This may cause problems.
This patch fixed this problem , adding the two unlocks before
break is called.

Signed-off-by: Li, Zhen-Hua <zhen-hual@xxxxxx>
---
drivers/tty/tty_io.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index c74a00a..d41b0da 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -1777,9 +1777,11 @@ int tty_release(struct inode *inode, struct file *filp)
do_sleep++;
}
}
- if (!do_sleep)
+ if (!do_sleep) {
+ tty_unlock_pair(tty, o_tty);
+ mutex_unlock(&tty_mutex);
break;
-
+ }
printk(KERN_WARNING "%s: %s: read/write wait queue active!\n",
__func__, tty_name(tty, buf));
tty_unlock_pair(tty, o_tty);
--
1.8.4.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/