Thread (5 messages) 5 messages, 2 authors, 2021-11-16

Re: [PATCH] tty: serial: atmel: Check return code of dmaengine_submit()

From: <hidden>
Date: 2021-11-16 11:36:14
Also in: linux-arm-kernel, lkml

On 11/16/21 10:26 AM, Greg KH wrote:
EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

On Tue, Nov 16, 2021 at 06:14:23AM +0000, Tudor.Ambarus@microchip.com wrote:
quoted
On 11/15/21 5:58 PM, Greg KH wrote:
quoted
EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

On Mon, Nov 15, 2021 at 04:30:04PM +0200, Tudor Ambarus wrote:
quoted
dma_cookie_t < 0 indicates an error code, check for it.
Very odd changelog text, please be more descriptive about what is
happening here.
The tx_submit() method of struct dma_async_tx_descriptor is entitled to do
sanity checks and return errors if encountered. It's not the case for the
DMA controller drivers that this client is using (at_h/xdmac), because they
currently don't do sanity checks and always return a positive cookie at
tx_submit() method. In case the controller drivers will implement sanity
checks and return errors, print a message so that the client will be informed
that something went wrong at tx_submit() level.
quoted
quoted
Signed-off-by: Tudor Ambarus <redacted>
---
 drivers/tty/serial/atmel_serial.c | 10 ++++++++++
 1 file changed, 10 insertions(+)
diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
index 2c99a47a2535..376f7a9c2868 100644
--- a/drivers/tty/serial/atmel_serial.c
+++ b/drivers/tty/serial/atmel_serial.c
@@ -1004,6 +1004,11 @@ static void atmel_tx_dma(struct uart_port *port)
              desc->callback = atmel_complete_tx_dma;
              desc->callback_param = atmel_port;
              atmel_port->cookie_tx = dmaengine_submit(desc);
+             if (dma_submit_error(atmel_port->cookie_tx)) {
+                     dev_err(port->dev, "dma_submit_error %d\n",
+                             atmel_port->cookie_tx);
+                     return;
What can a user do with this error message?
will be informed that something went wrong at tx_submit() level.
quoted
Have you seen this happen in real life?
No. I debugged a locking problem and I observed that dma_submit_error() is not called,
so I thought to update this.
quoted
What commit does this "fix"?
This is rather an improvement, but if you're looking for a fixes tag, I think
we can use:
Fixes: 08f738be88bb ("serial: at91: add tx dma support")

I'll send a v2 as part of a bigger series. If you find this patch does not worth it,
I can as well drop it.
Please resend it because as-is, I can not take it.
I've sent a v2 of this patch as a part of a larger series:
https://lore.kernel.org/all/20211116112036.96349-1-tudor.ambarus@microchip.com/ (local)

The slave DMA usage was wrong in both the DMA controller driver and the
serial driver and patch 1/13 and 3/13 are trying to address that.
v2 of this patch is 2/13. I guess all should be considered for an immutable
branch on the DMA tree.

Cheers,
ta
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help