]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - drivers/tty/tty_mutex.c
tty: Remove __lockfunc annotation from tty lock functions
[mirror_ubuntu-artful-kernel.git] / drivers / tty / tty_mutex.c
CommitLineData
b07471fa
AB
1#include <linux/tty.h>
2#include <linux/module.h>
3#include <linux/kallsyms.h>
4#include <linux/semaphore.h>
5#include <linux/sched.h>
6
89c8d91e
AC
7/* Legacy tty mutex glue */
8
b07471fa
AB
9/*
10 * Getting the big tty mutex.
11 */
89c8d91e 12
c2bb524b 13void tty_lock(struct tty_struct *tty)
b07471fa 14{
6d029c68 15 if (WARN(tty->magic != TTY_MAGIC, "L Bad %p\n", tty))
89c8d91e 16 return;
89c8d91e 17 tty_kref_get(tty);
2febdb63 18 mutex_lock(&tty->legacy_mutex);
b07471fa
AB
19}
20EXPORT_SYMBOL(tty_lock);
21
0bfd464d
PH
22int tty_lock_interruptible(struct tty_struct *tty)
23{
24 if (WARN(tty->magic != TTY_MAGIC, "L Bad %p\n", tty))
25 return -EIO;
26 tty_kref_get(tty);
27 return mutex_lock_interruptible(&tty->legacy_mutex);
28}
29
c2bb524b 30void tty_unlock(struct tty_struct *tty)
b07471fa 31{
6d029c68 32 if (WARN(tty->magic != TTY_MAGIC, "U Bad %p\n", tty))
89c8d91e 33 return;
89c8d91e
AC
34 mutex_unlock(&tty->legacy_mutex);
35 tty_kref_put(tty);
b07471fa
AB
36}
37EXPORT_SYMBOL(tty_unlock);
89c8d91e 38
c2bb524b 39void tty_lock_slave(struct tty_struct *tty)
89c8d91e 40{
eef15e2a 41 if (tty && tty != tty->link)
2febdb63 42 tty_lock(tty);
89c8d91e 43}
89c8d91e 44
c2bb524b 45void tty_unlock_slave(struct tty_struct *tty)
89c8d91e 46{
2aff5e2b
PH
47 if (tty && tty != tty->link)
48 tty_unlock(tty);
89c8d91e 49}
2febdb63
PH
50
51void tty_set_lock_subclass(struct tty_struct *tty)
52{
3abf87cd 53 lockdep_set_subclass(&tty->legacy_mutex, TTY_LOCK_SLAVE);
2febdb63 54}