tty: Separate release semantics of ldisc reference
authorPeter Hurley <peter@hurleysoftware.com>
Mon, 11 Mar 2013 20:44:40 +0000 (16:44 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 18 Mar 2013 23:48:42 +0000 (16:48 -0700)
commitebc9baed42e42f9b51cf61672b7afb72f068d523
tree2438eccbfddbfde6ff8a388f2dcf049913b4db8e
parent8842dda2366d3d0c97646102768831f9b0ffd712
tty: Separate release semantics of ldisc reference

tty_ldisc_ref()/tty_ldisc_unref() have usage semantics
equivalent to down_read_trylock()/up_read(). Only
callers of tty_ldisc_put() are performing the additional
operations necessary for proper ldisc teardown, and then only
after ensuring no outstanding 'read lock' remains.

Thus, tty_ldisc_unref() should never be the last reference;
WARN if it is. Conversely, tty_ldisc_put() should never be
destructing if the use count != 1.

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/tty_ldisc.c