aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty
diff options
context:
space:
mode:
authorMichael Walle <michael@walle.cc>2021-05-12 16:12:47 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-05-13 16:08:26 +0200
commitccf08fd1204bcb5311cc10aea037c71c6e74720a (patch)
tree5ff1979cfb9eb1bfca740eea4def8d41e5f9cf80 /drivers/tty
parenttty: serial: fsl_lpuart: fix the potential risk of division or modulo by zero (diff)
downloadlinux-dev-ccf08fd1204bcb5311cc10aea037c71c6e74720a.tar.xz
linux-dev-ccf08fd1204bcb5311cc10aea037c71c6e74720a.zip
serial: fsl_lpuart: don't modify arbitrary data on lpuart32
lpuart_rx_dma_startup() is used for both the 8 bit and the 32 bit version of the LPUART. Modify the UARTCR only for the 8 bit version. Fixes: f4eef224a09f ("serial: fsl_lpuart: add sysrq support when using dma") Signed-off-by: Michael Walle <michael@walle.cc> Link: https://lore.kernel.org/r/20210512141255.18277-2-michael@walle.cc Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty')
-rw-r--r--drivers/tty/serial/fsl_lpuart.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
index 777d54b593f8..120527cb8a81 100644
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
@@ -1625,7 +1625,7 @@ static void lpuart_rx_dma_startup(struct lpuart_port *sport)
sport->lpuart_dma_rx_use = true;
rx_dma_timer_init(sport);
- if (sport->port.has_sysrq) {
+ if (sport->port.has_sysrq && !lpuart_is_32(sport)) {
cr3 = readb(sport->port.membase + UARTCR3);
cr3 |= UARTCR3_FEIE;
writeb(cr3, sport->port.membase + UARTCR3);