[PATCH v2] pch_uart: Fix dma_sync_sg_for_device() nents value

Thomas Fourier posted 1 patch 3 months, 1 week ago
There is a newer version of this series
drivers/tty/serial/pch_uart.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v2] pch_uart: Fix dma_sync_sg_for_device() nents value
Posted by Thomas Fourier 3 months, 1 week ago
The dma_sync_sg_for_device() functions should be called with the same
nents as the dma_map_sg(), not the value the map function returned.

Fixes: da3564ee027e ("pch_uart: add multi-scatter processing")
Signed-off-by: Thomas Fourier <fourier.thomas@gmail.com>
---
 drivers/tty/serial/pch_uart.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
index 508e8c6f01d4..884fefbfd5a1 100644
--- a/drivers/tty/serial/pch_uart.c
+++ b/drivers/tty/serial/pch_uart.c
@@ -954,7 +954,7 @@ static unsigned int dma_handle_tx(struct eg20t_port *priv)
 			__func__);
 		return 0;
 	}
-	dma_sync_sg_for_device(port->dev, priv->sg_tx_p, nent, DMA_TO_DEVICE);
+	dma_sync_sg_for_device(port->dev, priv->sg_tx_p, num, DMA_TO_DEVICE);
 	priv->desc_tx = desc;
 	desc->callback = pch_dma_tx_complete;
 	desc->callback_param = priv;
-- 
2.43.0
Re: [PATCH v2] pch_uart: Fix dma_sync_sg_for_device() nents value
Posted by Jiri Slaby 3 months, 1 week ago
On 30. 06. 25, 14:10, Thomas Fourier wrote:
> The dma_sync_sg_for_device() functions should be called with the same
> nents as the dma_map_sg(), not the value the map function returned.

Care to explain why do you intend to sync more than mapped? "should be 
called" is way to vague.

> Fixes: da3564ee027e ("pch_uart: add multi-scatter processing")
> Signed-off-by: Thomas Fourier <fourier.thomas@gmail.com>
> ---
>   drivers/tty/serial/pch_uart.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
> index 508e8c6f01d4..884fefbfd5a1 100644
> --- a/drivers/tty/serial/pch_uart.c
> +++ b/drivers/tty/serial/pch_uart.c
> @@ -954,7 +954,7 @@ static unsigned int dma_handle_tx(struct eg20t_port *priv)
>   			__func__);
>   		return 0;
>   	}
> -	dma_sync_sg_for_device(port->dev, priv->sg_tx_p, nent, DMA_TO_DEVICE);
> +	dma_sync_sg_for_device(port->dev, priv->sg_tx_p, num, DMA_TO_DEVICE);
>   	priv->desc_tx = desc;
>   	desc->callback = pch_dma_tx_complete;
>   	desc->callback_param = priv;


-- 
js
suse labs
Re: [PATCH v2] pch_uart: Fix dma_sync_sg_for_device() nents value
Posted by Andy Shevchenko 3 months, 1 week ago
On Mon, Jun 30, 2025 at 03:01:01PM +0200, Jiri Slaby wrote:
> On 30. 06. 25, 14:10, Thomas Fourier wrote:
> > The dma_sync_sg_for_device() functions should be called with the same
> > nents as the dma_map_sg(), not the value the map function returned.
> 
> Care to explain why do you intend to sync more than mapped? "should be
> called" is way to vague.

It's documented as the correct use of the DMA streaming API.
Should we go deeper and understand why?

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH v2] pch_uart: Fix dma_sync_sg_for_device() nents value
Posted by Jiri Slaby 3 months, 1 week ago
On 30. 06. 25, 15:13, Andy Shevchenko wrote:
> On Mon, Jun 30, 2025 at 03:01:01PM +0200, Jiri Slaby wrote:
>> On 30. 06. 25, 14:10, Thomas Fourier wrote:
>>> The dma_sync_sg_for_device() functions should be called with the same
>>> nents as the dma_map_sg(), not the value the map function returned.
>>
>> Care to explain why do you intend to sync more than mapped? "should be
>> called" is way to vague.
> 
> It's documented as the correct use of the DMA streaming API.
> Should we go deeper and understand why?

That's IMO enough if he put/referenced this in the commit log...

-- 
js
suse labs
Re: [PATCH v2] pch_uart: Fix dma_sync_sg_for_device() nents value
Posted by Greg KH 3 months, 1 week ago
On Mon, Jun 30, 2025 at 02:10:19PM +0200, Thomas Fourier wrote:
> The dma_sync_sg_for_device() functions should be called with the same
> nents as the dma_map_sg(), not the value the map function returned.
> 
> Fixes: da3564ee027e ("pch_uart: add multi-scatter processing")
> Signed-off-by: Thomas Fourier <fourier.thomas@gmail.com>
> ---
>  drivers/tty/serial/pch_uart.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
> index 508e8c6f01d4..884fefbfd5a1 100644
> --- a/drivers/tty/serial/pch_uart.c
> +++ b/drivers/tty/serial/pch_uart.c
> @@ -954,7 +954,7 @@ static unsigned int dma_handle_tx(struct eg20t_port *priv)
>  			__func__);
>  		return 0;
>  	}
> -	dma_sync_sg_for_device(port->dev, priv->sg_tx_p, nent, DMA_TO_DEVICE);
> +	dma_sync_sg_for_device(port->dev, priv->sg_tx_p, num, DMA_TO_DEVICE);
>  	priv->desc_tx = desc;
>  	desc->callback = pch_dma_tx_complete;
>  	desc->callback_param = priv;
> -- 
> 2.43.0
> 
> 

Hi,

This is the friendly patch-bot of Greg Kroah-Hartman.  You have sent him
a patch that has triggered this response.  He used to manually respond
to these common problems, but in order to save his sanity (he kept
writing the same thing over and over, yet to different people), I was
created.  Hopefully you will not take offence and will fix the problem
in your patch and resubmit it so that it can be accepted into the Linux
kernel tree.

You are receiving this message because of the following common error(s)
as indicated below:

- This looks like a new version of a previously submitted patch, but you
  did not list below the --- line any changes from the previous version.
  Please read the section entitled "The canonical patch format" in the
  kernel file, Documentation/process/submitting-patches.rst for what
  needs to be done here to properly describe this.

- You have marked a patch with a "Fixes:" tag for a commit that is in an
  older released kernel, yet you do not have a cc: stable line in the
  signed-off-by area at all, which means that the patch will not be
  applied to any older kernel releases.  To properly fix this, please
  follow the documented rules in the
  Documentation/process/stable-kernel-rules.rst file for how to resolve
  this.

If you wish to discuss this problem further, or you have questions about
how to resolve this issue, please feel free to respond to this email and
Greg will reply once he has dug out from the pending patches received
from other developers.

thanks,

greg k-h's patch email bot