]> git.itanic.dy.fi Git - linux-stable/commit
tty: n_gsm: fix race condition in gsmld_write()
authorDaniel Starke <daniel.starke@siemens.com>
Fri, 1 Jul 2022 06:16:52 +0000 (08:16 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Jul 2022 08:07:40 +0000 (10:07 +0200)
commit32dd59f96924f45e33bc79854f7a00679c0fa28e
treec45bdc462f2dfa290fb83f8a675e05b34463229e
parent4fae831b3a71fc5a44cc5c7d0b8c1267ee7659f5
tty: n_gsm: fix race condition in gsmld_write()

The function may be used by the user directly and also by the n_gsm
internal functions. They can lead into a race condition which results in
interleaved frames if both are writing at the same time. The receiving side
is not able to decode those interleaved frames correctly.

Add a lock around the low side tty write to avoid race conditions and frame
interleaving between user originated writes and n_gsm writes.

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