Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 7044d43f authored by Matthias Kaehlcke's avatar Matthias Kaehlcke Committed by Mukesh Kumar Savaliya
Browse files

tty: serial: qcom_geni_serial: Fix wrap around of TX buffer



Before commit a1fee899e5bed ("tty: serial: qcom_geni_serial: Fix
softlock") the size of TX transfers was limited to the TX FIFO size,
and wrap arounds of the UART circular buffer were split into two
transfers. With the commit wrap around are allowed within a transfer.
The TX FIFO of the geni serial port uses a word size of 4 bytes. In
case of a circular buffer wrap within a transfer the driver currently
may write an incomplete word to the FIFO, with some bytes containing
data from the circular buffer and others being zero. Since the
transfer isn't completed yet the zero bytes are sent as if they were
actual data.

Handle wrap arounds of the TX buffer properly and ensure that words
written to the TX FIFO always contain valid data (unless the transfer
is completed).

Fixes: a1fee899e5bed ("tty: serial: qcom_geni_serial: Fix softlock").

Change-Id: I79bb1b38377d8ea497239f6446c0babe6e62834b
Signed-off-by: default avatarMatthias Kaehlcke <mka@chromium.org>
Git-commit: 3c66eb4ba18dd1cab0d1bde651cde6d8bdb47696
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git


[msavaliy@codeaurora.org: Applied patch to downstream file - msm_geni_serial.c]
Signed-off-by: default avatarMukesh Kumar Savaliya <msavaliy@codeaurora.org>
parent 83167bef
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment