You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
pch_uart: Fix dma channel unallocated issue
This driver anticipates pch_uart_verify_port() is not called
during installation.
However, actually pch_uart_verify_port() is called during
installation.
As a result, memory access violation occurs like below.
0. initial value: use_dma=0
1. starup()
- dma channel is not allocated because use_dma=0
2. pch_uart_verify_port()
- Set use_dma=1
3. UART processing acts DMA mode because use_dma=1
- memory access violation occurs!
This patch fixes the issue.
Solution:
Whenever pch_uart_verify_port() is called and then
dma channel is not allocated, the channel should be allocated.
Signed-off-by: Tomoya MORINAGA <tomoya.rohm@gmail.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
7a6fbc9a88
commit
af6d17cdc8
@@ -1447,9 +1447,11 @@ static int pch_uart_verify_port(struct uart_port *port,
|
||||
__func__);
|
||||
return -EOPNOTSUPP;
|
||||
#endif
|
||||
priv->use_dma = 1;
|
||||
priv->use_dma_flag = 1;
|
||||
dev_info(priv->port.dev, "PCH UART : Use DMA Mode\n");
|
||||
if (!priv->use_dma)
|
||||
pch_request_dma(port);
|
||||
priv->use_dma = 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user