tty: n_gsm: fix missing explicit ldisc flush
authorDaniel Starke <daniel.starke@siemens.com>
Thu, 14 Apr 2022 09:42:15 +0000 (02:42 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Apr 2022 06:36:04 +0000 (08:36 +0200)
commit17eac652028501df7ea296b1d9b9c134db262b7d
treee3102570f7b1187bdb2df16674d86bc210e75cce
parentdeefc58bafb4841df7f0a0d85d89a1c819db9743
tty: n_gsm: fix missing explicit ldisc flush

In gsm_cleanup_mux() the muxer is closed down and all queues are removed.
However, removing the queues is done without explicit control of the
underlying buffers. Flush those before freeing up our queues to ensure
that all outgoing queues are cleared consistently. Otherwise, a new mux
connection establishment attempt may time out while the underlying tty is
still busy sending out the remaining data from the previous connection.

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-10-daniel.starke@siemens.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/n_gsm.c