Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tty: Fix merge of "tty: Refactor tty_open()"

Commit e9036d066236 ("tty: Drop krefs for interrupted tty lock")
fixed a tty reference counting problem introduced in
commit 0bfd464d3fdd ("tty: Wait interruptibly for tty lock on reopen"),
so v4.5.0 is correct.

However, commit d6203d0c7b73 ("tty: Refactor tty_open()") moved the
relevant code for 4.6-rc1; correct the merge.

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

authored by

Peter Hurley and committed by
Greg Kroah-Hartman
5e00bbfb da5a0fc6

+1 -2
+1 -2
drivers/tty/tty_io.c
··· 2049 2049 if (tty) { 2050 2050 mutex_unlock(&tty_mutex); 2051 2051 retval = tty_lock_interruptible(tty); 2052 + tty_kref_put(tty); /* drop kref from tty_driver_lookup_tty() */ 2052 2053 if (retval) { 2053 2054 if (retval == -EINTR) 2054 2055 retval = -ERESTARTSYS; 2055 2056 tty = ERR_PTR(retval); 2056 2057 goto out; 2057 2058 } 2058 - /* safe to drop the kref from tty_driver_lookup_tty() */ 2059 - tty_kref_put(tty); 2060 2059 retval = tty_reopen(tty); 2061 2060 if (retval < 0) { 2062 2061 tty_unlock(tty);