LCOV - code coverage report
Current view: top level - drivers/tty - tty_mutex.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 24 0.0 %
Date: 2022-12-09 01:23:36 Functions: 0 6 0.0 %

          Line data    Source code
       1             : // SPDX-License-Identifier: GPL-2.0
       2             : #include <linux/tty.h>
       3             : #include <linux/module.h>
       4             : #include <linux/kallsyms.h>
       5             : #include <linux/semaphore.h>
       6             : #include <linux/sched.h>
       7             : #include "tty.h"
       8             : 
       9             : /* Legacy tty mutex glue */
      10             : 
      11             : /*
      12             :  * Getting the big tty mutex.
      13             :  */
      14             : 
      15           0 : void tty_lock(struct tty_struct *tty)
      16             : {
      17           0 :         if (WARN(tty->magic != TTY_MAGIC, "L Bad %p\n", tty))
      18             :                 return;
      19           0 :         tty_kref_get(tty);
      20           0 :         mutex_lock(&tty->legacy_mutex);
      21             : }
      22             : EXPORT_SYMBOL(tty_lock);
      23             : 
      24           0 : int tty_lock_interruptible(struct tty_struct *tty)
      25             : {
      26             :         int ret;
      27             : 
      28           0 :         if (WARN(tty->magic != TTY_MAGIC, "L Bad %p\n", tty))
      29             :                 return -EIO;
      30           0 :         tty_kref_get(tty);
      31           0 :         ret = mutex_lock_interruptible(&tty->legacy_mutex);
      32           0 :         if (ret)
      33           0 :                 tty_kref_put(tty);
      34             :         return ret;
      35             : }
      36             : 
      37           0 : void tty_unlock(struct tty_struct *tty)
      38             : {
      39           0 :         if (WARN(tty->magic != TTY_MAGIC, "U Bad %p\n", tty))
      40             :                 return;
      41           0 :         mutex_unlock(&tty->legacy_mutex);
      42           0 :         tty_kref_put(tty);
      43             : }
      44             : EXPORT_SYMBOL(tty_unlock);
      45             : 
      46           0 : void tty_lock_slave(struct tty_struct *tty)
      47             : {
      48           0 :         if (tty && tty != tty->link)
      49           0 :                 tty_lock(tty);
      50           0 : }
      51             : 
      52           0 : void tty_unlock_slave(struct tty_struct *tty)
      53             : {
      54           0 :         if (tty && tty != tty->link)
      55           0 :                 tty_unlock(tty);
      56           0 : }
      57             : 
      58           0 : void tty_set_lock_subclass(struct tty_struct *tty)
      59             : {
      60             :         lockdep_set_subclass(&tty->legacy_mutex, TTY_LOCK_SLAVE);
      61           0 : }

Generated by: LCOV version 1.14