mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 08:43:19 -04:00
Add a mutex ng_tty_mtx to protect the global variable ngt_unit. Note
that the locking of globals here isn't complete, and there's also a locking issue relating to calling into and out of the tty code.
This commit is contained in:
parent
489264ddae
commit
c61340f374
1 changed files with 10 additions and 0 deletions
|
|
@ -166,10 +166,18 @@ static struct ng_type typestruct = {
|
|||
};
|
||||
NETGRAPH_INIT(tty, &typestruct);
|
||||
|
||||
/*
|
||||
* XXXRW: ngt_unit is protected by ng_tty_mtx. ngt_ldisc is constant once
|
||||
* ng_tty is initialized. ngt_nodeop_ok is untouched, and might want to be a
|
||||
* sleep lock in the future?
|
||||
*/
|
||||
static int ngt_unit;
|
||||
static int ngt_nodeop_ok; /* OK to create/remove node */
|
||||
static int ngt_ldisc;
|
||||
|
||||
static struct mtx ng_tty_mtx;
|
||||
MTX_SYSINIT(ng_tty, &ng_tty_mtx, "ng_tty", MTX_DEF);
|
||||
|
||||
/******************************************************************
|
||||
LINE DISCIPLINE METHODS
|
||||
******************************************************************/
|
||||
|
|
@ -214,7 +222,9 @@ ngt_open(struct cdev *dev, struct tty *tp)
|
|||
FREE(sc, M_NETGRAPH);
|
||||
goto done;
|
||||
}
|
||||
mtx_lock(&ng_tty_mtx);
|
||||
snprintf(name, sizeof(name), "%s%d", typestruct.name, ngt_unit++);
|
||||
mtx_unlock(&ng_tty_mtx);
|
||||
|
||||
/* Assign node its name */
|
||||
if ((error = ng_name_node(sc->node, name))) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue