aboutsummaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
authorKyle Evans <kevans@FreeBSD.org>2020-04-17 18:34:49 +0000
committerKyle Evans <kevans@FreeBSD.org>2020-04-17 18:34:49 +0000
commit23d5326823c740f2ddcd3268216d0a59b374457c (patch)
treef6d0e247891d6403320a9da2f4d2bab4abca18e2 /sys/kern
parent490befd40a647bb9108c3f71fccb50137ac9a254 (diff)
downloadsrc-23d5326823c740f2ddcd3268216d0a59b374457c.tar.gz
src-23d5326823c740f2ddcd3268216d0a59b374457c.zip
tty: convert tty_lock_assert to tty_assert_locked to hide lock type
A later change, currently being iterated on in D24459, will in-fact change the lock type to an sx so that TTY drivers can sleep on it if they need to. Committing this ahead of time to make the review in question a little more palatable. tty_lock_assert() is unfortunately still needed for now in two places to make sure that the tty lock has not been recursed upon, for those scenarios where it's supplied by the TTY driver and possibly a mutex that is allowed to recurse. Suggested by: markj
Notes
Notes: svn path=/head/; revision=360051
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/tty.c26
-rw-r--r--sys/kern/tty_info.c2
-rw-r--r--sys/kern/tty_ttydisc.c24
3 files changed, 26 insertions, 26 deletions
diff --git a/sys/kern/tty.c b/sys/kern/tty.c
index 77e268c451a7..dbf924871362 100644
--- a/sys/kern/tty.c
+++ b/sys/kern/tty.c
@@ -228,7 +228,7 @@ static void
ttydev_leave(struct tty *tp)
{
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (tty_opened(tp) || tp->t_flags & TF_OPENCLOSE) {
/* Device is still opened somewhere. */
@@ -413,7 +413,7 @@ static __inline int
tty_is_ctty(struct tty *tp, struct proc *p)
{
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
return (p->p_session == tp->t_session && p->p_flag & P_CONTROLT);
}
@@ -427,7 +427,7 @@ tty_wait_background(struct tty *tp, struct thread *td, int sig)
int error;
MPASS(sig == SIGTTIN || sig == SIGTTOU);
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
for (;;) {
PROC_LOCK(p);
@@ -697,7 +697,7 @@ tty_kqops_read_event(struct knote *kn, long hint __unused)
{
struct tty *tp = kn->kn_hook;
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (tty_gone(tp) || tp->t_flags & TF_ZOMBIE) {
kn->kn_flags |= EV_EOF;
@@ -721,7 +721,7 @@ tty_kqops_write_event(struct knote *kn, long hint __unused)
{
struct tty *tp = kn->kn_hook;
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (tty_gone(tp)) {
kn->kn_flags |= EV_EOF;
@@ -1122,7 +1122,7 @@ tty_rel_free(struct tty *tp)
{
struct cdev *dev;
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
#define TF_ACTIVITY (TF_GONE|TF_OPENED|TF_HOOK|TF_OPENCLOSE)
if (tp->t_sessioncnt != 0 || (tp->t_flags & TF_ACTIVITY) != TF_GONE) {
@@ -1153,7 +1153,7 @@ tty_rel_pgrp(struct tty *tp, struct pgrp *pg)
{
MPASS(tp->t_sessioncnt > 0);
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (tp->t_pgrp == pg)
tp->t_pgrp = NULL;
@@ -1180,7 +1180,7 @@ void
tty_rel_gone(struct tty *tp)
{
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
MPASS(!tty_gone(tp));
/* Simulate carrier removal. */
@@ -1268,7 +1268,7 @@ static void
tty_to_xtty(struct tty *tp, struct xtty *xt)
{
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
xt->xt_size = sizeof(struct xtty);
xt->xt_insize = ttyinq_getsize(&tp->t_inq);
@@ -1460,7 +1460,7 @@ tty_signal_sessleader(struct tty *tp, int sig)
{
struct proc *p;
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
MPASS(sig >= 1 && sig < NSIG);
/* Make signals start output again. */
@@ -1479,7 +1479,7 @@ tty_signal_pgrp(struct tty *tp, int sig)
{
ksiginfo_t ksi;
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
MPASS(sig >= 1 && sig < NSIG);
/* Make signals start output again. */
@@ -1957,7 +1957,7 @@ tty_ioctl(struct tty *tp, u_long cmd, void *data, int fflag, struct thread *td)
{
int error;
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (tty_gone(tp))
return (ENXIO);
@@ -2124,7 +2124,7 @@ void
ttyhook_unregister(struct tty *tp)
{
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
MPASS(tp->t_flags & TF_HOOK);
/* Disconnect the hook. */
diff --git a/sys/kern/tty_info.c b/sys/kern/tty_info.c
index c755f7530b01..7b02092cac9a 100644
--- a/sys/kern/tty_info.c
+++ b/sys/kern/tty_info.c
@@ -266,7 +266,7 @@ tty_info(struct tty *tp)
char comm[MAXCOMLEN + 1];
struct rusage ru;
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (tty_checkoutq(tp) == 0)
return;
diff --git a/sys/kern/tty_ttydisc.c b/sys/kern/tty_ttydisc.c
index 25cc380a866f..0e3c785545a1 100644
--- a/sys/kern/tty_ttydisc.c
+++ b/sys/kern/tty_ttydisc.c
@@ -326,7 +326,7 @@ ttydisc_read(struct tty *tp, struct uio *uio, int ioflag)
{
int error;
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (uio->uio_resid == 0)
return (0);
@@ -458,7 +458,7 @@ ttydisc_write(struct tty *tp, struct uio *uio, int ioflag)
int error = 0;
unsigned int oblen = 0;
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (tp->t_flags & TF_ZOMBIE)
return (EIO);
@@ -573,7 +573,7 @@ done:
void
ttydisc_optimize(struct tty *tp)
{
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (ttyhook_hashook(tp, rint_bypass)) {
tp->t_flags |= TF_BYPASS;
@@ -594,7 +594,7 @@ void
ttydisc_modem(struct tty *tp, int open)
{
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (open)
cv_broadcast(&tp->t_dcdwait);
@@ -842,7 +842,7 @@ ttydisc_rint(struct tty *tp, char c, int flags)
char ob[3] = { 0xff, 0x00 };
size_t ol;
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
atomic_add_long(&tty_nin, 1);
@@ -1085,7 +1085,7 @@ ttydisc_rint_bypass(struct tty *tp, const void *buf, size_t len)
{
size_t ret;
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
MPASS(tp->t_flags & TF_BYPASS);
@@ -1106,7 +1106,7 @@ void
ttydisc_rint_done(struct tty *tp)
{
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (ttyhook_hashook(tp, rint_done))
ttyhook_rint_done(tp);
@@ -1122,7 +1122,7 @@ ttydisc_rint_poll(struct tty *tp)
{
size_t l;
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (ttyhook_hashook(tp, rint_poll))
return ttyhook_rint_poll(tp);
@@ -1165,7 +1165,7 @@ size_t
ttydisc_getc(struct tty *tp, void *buf, size_t len)
{
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (tp->t_flags & TF_STOPPED)
return (0);
@@ -1192,7 +1192,7 @@ ttydisc_getc_uio(struct tty *tp, struct uio *uio)
size_t len;
char buf[TTY_STACKBUF];
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (tp->t_flags & TF_STOPPED)
return (0);
@@ -1233,7 +1233,7 @@ size_t
ttydisc_getc_poll(struct tty *tp)
{
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (tp->t_flags & TF_STOPPED)
return (0);
@@ -1255,7 +1255,7 @@ tty_putstrn(struct tty *tp, const char *p, size_t n)
{
size_t i;
- tty_lock_assert(tp, MA_OWNED);
+ tty_assert_locked(tp);
if (tty_gone(tp))
return (-1);