]> git.baikalelectronics.ru Git - kernel.git/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)
commit9f4a99eb224d0efa845b2bf847ca7e659b4a9167
treec45bdc462f2dfa290fb83f8a675e05b34463229e
parentdff74b33b449b4384b7b06e12e46205bdaa7e1f4
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: 99551fa31543 ("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