Merge tag 'tty-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
[deliverable/linux.git] / drivers / tty / tty_mutex.c
index 69adc80c98cd5c035fa0f3a18df6fc3e3c127623..9ff986c32a21ef702edf515a79c19440a504b747 100644 (file)
@@ -4,59 +4,29 @@
 #include <linux/semaphore.h>
 #include <linux/sched.h>
 
-/* Legacy tty mutex glue */
+/*
+ * The 'big tty mutex'
+ *
+ * This mutex is taken and released by tty_lock() and tty_unlock(),
+ * replacing the older big kernel lock.
+ * It can no longer be taken recursively, and does not get
+ * released implicitly while sleeping.
+ *
+ * Don't use in new code.
+ */
+static DEFINE_MUTEX(big_tty_mutex);
 
 /*
  * Getting the big tty mutex.
  */
-
-void __lockfunc tty_lock(struct tty_struct *tty)
+void __lockfunc tty_lock(void)
 {
-       if (tty->magic != TTY_MAGIC) {
-               printk(KERN_ERR "L Bad %p\n", tty);
-               WARN_ON(1);
-               return;
-       }
-       tty_kref_get(tty);
-       mutex_lock(&tty->legacy_mutex);
+       mutex_lock(&big_tty_mutex);
 }
 EXPORT_SYMBOL(tty_lock);
 
-void __lockfunc tty_unlock(struct tty_struct *tty)
+void __lockfunc tty_unlock(void)
 {
-       if (tty->magic != TTY_MAGIC) {
-               printk(KERN_ERR "U Bad %p\n", tty);
-               WARN_ON(1);
-               return;
-       }
-       mutex_unlock(&tty->legacy_mutex);
-       tty_kref_put(tty);
+       mutex_unlock(&big_tty_mutex);
 }
 EXPORT_SYMBOL(tty_unlock);
-
-/*
- * Getting the big tty mutex for a pair of ttys with lock ordering
- * On a non pty/tty pair tty2 can be NULL which is just fine.
- */
-void __lockfunc tty_lock_pair(struct tty_struct *tty,
-                                       struct tty_struct *tty2)
-{
-       if (tty < tty2) {
-               tty_lock(tty);
-               tty_lock(tty2);
-       } else {
-               if (tty2 && tty2 != tty)
-                       tty_lock(tty2);
-               tty_lock(tty);
-       }
-}
-EXPORT_SYMBOL(tty_lock_pair);
-
-void __lockfunc tty_unlock_pair(struct tty_struct *tty,
-                                               struct tty_struct *tty2)
-{
-       tty_unlock(tty);
-       if (tty2 && tty2 != tty)
-               tty_unlock(tty2);
-}
-EXPORT_SYMBOL(tty_unlock_pair);
This page took 0.026561 seconds and 5 git commands to generate.