]> www.infradead.org Git - users/dwmw2/linux.git/commit
tty: n_gsm: fix mux cleanup after unregister tty device
authorDaniel Starke <daniel.starke@siemens.com>
Thu, 14 Apr 2022 09:42:09 +0000 (02:42 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 May 2022 07:05:07 +0000 (09:05 +0200)
commit26f127f6d9385e32c0a5720e5358ae7f28bbd33a
treef74e3c23feb7efc8c0ecea3f883bd72f778acde6
parentf26c271492b6ec15c8bd274fd220b7835f5ebc3d
tty: n_gsm: fix mux cleanup after unregister tty device

commit 284260f278b706364fb4c88a7b56ba5298d5973c upstream.

Internally, we manage the alive state of the mux channels and mux itself
with the field member 'dead'. This makes it possible to notify the user
if the accessed underlying link is already gone. On the other hand,
however, removing the virtual ttys before terminating the channels may
result in peer messages being received without any internal target. Move
the mux cleanup procedure from gsmld_detach_gsm() to gsmld_close() to fix
this by keeping the virtual ttys open until the mux has been cleaned up.

Fixes: e1eaea46bb40 ("tty: n_gsm line discipline")
Cc: stable@vger.kernel.org
Signed-off-by: Daniel Starke <daniel.starke@siemens.com>
Link: https://lore.kernel.org/r/20220414094225.4527-4-daniel.starke@siemens.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/n_gsm.c