VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

More than 9999 Commits   33 Branches   57 Tags
b24413180f560 drivers/tty/tty_mutex.c  (Greg Kroah-Hartman 2017-11-01 15:07:57 +0100  1) // SPDX-License-Identifier: GPL-2.0
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200  2) #include <linux/tty.h>
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200  3) #include <linux/module.h>
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200  4) #include <linux/kallsyms.h>
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200  5) #include <linux/semaphore.h>
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200  6) #include <linux/sched.h>
6c80c0b94b941 drivers/tty/tty_mutex.c  (Greg Kroah-Hartman 2021-04-08 14:51:30 +0200  7) #include "tty.h"
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200  8) 
89c8d91e31f26 drivers/tty/tty_mutex.c  (Alan Cox           2012-08-08 16:30:13 +0100  9) /* Legacy tty mutex glue */
89c8d91e31f26 drivers/tty/tty_mutex.c  (Alan Cox           2012-08-08 16:30:13 +0100 10) 
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200 11) /*
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200 12)  * Getting the big tty mutex.
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200 13)  */
89c8d91e31f26 drivers/tty/tty_mutex.c  (Alan Cox           2012-08-08 16:30:13 +0100 14) 
c2bb524b2e1a6 drivers/tty/tty_mutex.c  (Peter Hurley       2016-01-09 21:13:51 -0800 15) void tty_lock(struct tty_struct *tty)
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200 16) {
6d029c68de121 drivers/tty/tty_mutex.c  (Peter Hurley       2015-11-08 13:01:20 -0500 17) 	if (WARN(tty->magic != TTY_MAGIC, "L Bad %p\n", tty))
89c8d91e31f26 drivers/tty/tty_mutex.c  (Alan Cox           2012-08-08 16:30:13 +0100 18) 		return;
89c8d91e31f26 drivers/tty/tty_mutex.c  (Alan Cox           2012-08-08 16:30:13 +0100 19) 	tty_kref_get(tty);
2febdb632bb96 drivers/tty/tty_mutex.c  (Peter Hurley       2014-11-05 12:13:02 -0500 20) 	mutex_lock(&tty->legacy_mutex);
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200 21) }
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200 22) EXPORT_SYMBOL(tty_lock);
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200 23) 
0bfd464d3fdd5 drivers/tty/tty_mutex.c  (Peter Hurley       2016-01-09 21:13:44 -0800 24) int tty_lock_interruptible(struct tty_struct *tty)
0bfd464d3fdd5 drivers/tty/tty_mutex.c  (Peter Hurley       2016-01-09 21:13:44 -0800 25) {
e9036d0662360 drivers/tty/tty_mutex.c  (Peter Hurley       2016-02-05 10:49:36 -0800 26) 	int ret;
e9036d0662360 drivers/tty/tty_mutex.c  (Peter Hurley       2016-02-05 10:49:36 -0800 27) 
0bfd464d3fdd5 drivers/tty/tty_mutex.c  (Peter Hurley       2016-01-09 21:13:44 -0800 28) 	if (WARN(tty->magic != TTY_MAGIC, "L Bad %p\n", tty))
0bfd464d3fdd5 drivers/tty/tty_mutex.c  (Peter Hurley       2016-01-09 21:13:44 -0800 29) 		return -EIO;
0bfd464d3fdd5 drivers/tty/tty_mutex.c  (Peter Hurley       2016-01-09 21:13:44 -0800 30) 	tty_kref_get(tty);
e9036d0662360 drivers/tty/tty_mutex.c  (Peter Hurley       2016-02-05 10:49:36 -0800 31) 	ret = mutex_lock_interruptible(&tty->legacy_mutex);
e9036d0662360 drivers/tty/tty_mutex.c  (Peter Hurley       2016-02-05 10:49:36 -0800 32) 	if (ret)
e9036d0662360 drivers/tty/tty_mutex.c  (Peter Hurley       2016-02-05 10:49:36 -0800 33) 		tty_kref_put(tty);
e9036d0662360 drivers/tty/tty_mutex.c  (Peter Hurley       2016-02-05 10:49:36 -0800 34) 	return ret;
0bfd464d3fdd5 drivers/tty/tty_mutex.c  (Peter Hurley       2016-01-09 21:13:44 -0800 35) }
0bfd464d3fdd5 drivers/tty/tty_mutex.c  (Peter Hurley       2016-01-09 21:13:44 -0800 36) 
c2bb524b2e1a6 drivers/tty/tty_mutex.c  (Peter Hurley       2016-01-09 21:13:51 -0800 37) void tty_unlock(struct tty_struct *tty)
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200 38) {
6d029c68de121 drivers/tty/tty_mutex.c  (Peter Hurley       2015-11-08 13:01:20 -0500 39) 	if (WARN(tty->magic != TTY_MAGIC, "U Bad %p\n", tty))
89c8d91e31f26 drivers/tty/tty_mutex.c  (Alan Cox           2012-08-08 16:30:13 +0100 40) 		return;
89c8d91e31f26 drivers/tty/tty_mutex.c  (Alan Cox           2012-08-08 16:30:13 +0100 41) 	mutex_unlock(&tty->legacy_mutex);
89c8d91e31f26 drivers/tty/tty_mutex.c  (Alan Cox           2012-08-08 16:30:13 +0100 42) 	tty_kref_put(tty);
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200 43) }
b07471fa51358 drivers/char/tty_mutex.c (Arnd Bergmann      2010-08-06 21:40:30 +0200 44) EXPORT_SYMBOL(tty_unlock);
89c8d91e31f26 drivers/tty/tty_mutex.c  (Alan Cox           2012-08-08 16:30:13 +0100 45) 
c2bb524b2e1a6 drivers/tty/tty_mutex.c  (Peter Hurley       2016-01-09 21:13:51 -0800 46) void tty_lock_slave(struct tty_struct *tty)
89c8d91e31f26 drivers/tty/tty_mutex.c  (Alan Cox           2012-08-08 16:30:13 +0100 47) {
eef15e2a54fad drivers/tty/tty_mutex.c  (Peter Hurley       2014-12-30 07:11:11 -0500 48) 	if (tty && tty != tty->link)
2febdb632bb96 drivers/tty/tty_mutex.c  (Peter Hurley       2014-11-05 12:13:02 -0500 49) 		tty_lock(tty);
89c8d91e31f26 drivers/tty/tty_mutex.c  (Alan Cox           2012-08-08 16:30:13 +0100 50) }
89c8d91e31f26 drivers/tty/tty_mutex.c  (Alan Cox           2012-08-08 16:30:13 +0100 51) 
c2bb524b2e1a6 drivers/tty/tty_mutex.c  (Peter Hurley       2016-01-09 21:13:51 -0800 52) void tty_unlock_slave(struct tty_struct *tty)
89c8d91e31f26 drivers/tty/tty_mutex.c  (Alan Cox           2012-08-08 16:30:13 +0100 53) {
2aff5e2bc62db drivers/tty/tty_mutex.c  (Peter Hurley       2014-11-05 12:13:01 -0500 54) 	if (tty && tty != tty->link)
2aff5e2bc62db drivers/tty/tty_mutex.c  (Peter Hurley       2014-11-05 12:13:01 -0500 55) 		tty_unlock(tty);
89c8d91e31f26 drivers/tty/tty_mutex.c  (Alan Cox           2012-08-08 16:30:13 +0100 56) }
2febdb632bb96 drivers/tty/tty_mutex.c  (Peter Hurley       2014-11-05 12:13:02 -0500 57) 
2febdb632bb96 drivers/tty/tty_mutex.c  (Peter Hurley       2014-11-05 12:13:02 -0500 58) void tty_set_lock_subclass(struct tty_struct *tty)
2febdb632bb96 drivers/tty/tty_mutex.c  (Peter Hurley       2014-11-05 12:13:02 -0500 59) {
3abf87cd3e700 drivers/tty/tty_mutex.c  (Peter Hurley       2015-01-17 15:42:04 -0500 60) 	lockdep_set_subclass(&tty->legacy_mutex, TTY_LOCK_SLAVE);
2febdb632bb96 drivers/tty/tty_mutex.c  (Peter Hurley       2014-11-05 12:13:02 -0500 61) }