dmaengine.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] dmaengine: fsl-dpaa2-qdma: Fix the size of dma pools
@ 2020-12-17  9:23 Guanhua Gao
  2021-02-01 10:00 ` Vinod Koul
  0 siblings, 1 reply; 2+ messages in thread
From: Guanhua Gao @ 2020-12-17  9:23 UTC (permalink / raw)
  To: Dan Williams, Vinod Koul; +Cc: dmaengine, linux-kernel, Guanhua Gao

In case of long format of qDMA command descriptor, there are one frame
descriptor, three entries in the frame list and two data entries. So the
size of dma_pool_create for these three fields should be the same with
the total size of entries respectively, or the contents may be overwritten
by the next allocated descriptor.

Signed-off-by: Guanhua Gao <guanhua.gao@nxp.com>
---
 drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c b/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
index 4ec909e..bc5baa6 100644
--- a/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
+++ b/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
@@ -38,15 +38,17 @@ static int dpaa2_qdma_alloc_chan_resources(struct dma_chan *chan)
 	if (!dpaa2_chan->fd_pool)
 		goto err;
 
-	dpaa2_chan->fl_pool = dma_pool_create("fl_pool", dev,
-					      sizeof(struct dpaa2_fl_entry),
-					      sizeof(struct dpaa2_fl_entry), 0);
+	dpaa2_chan->fl_pool =
+		dma_pool_create("fl_pool", dev,
+				 sizeof(struct dpaa2_fl_entry) * 3,
+				 sizeof(struct dpaa2_fl_entry), 0);
+
 	if (!dpaa2_chan->fl_pool)
 		goto err_fd;
 
 	dpaa2_chan->sdd_pool =
 		dma_pool_create("sdd_pool", dev,
-				sizeof(struct dpaa2_qdma_sd_d),
+				sizeof(struct dpaa2_qdma_sd_d) * 2,
 				sizeof(struct dpaa2_qdma_sd_d), 0);
 	if (!dpaa2_chan->sdd_pool)
 		goto err_fl;
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 1/2] dmaengine: fsl-dpaa2-qdma: Fix the size of dma pools
  2020-12-17  9:23 [PATCH 1/2] dmaengine: fsl-dpaa2-qdma: Fix the size of dma pools Guanhua Gao
@ 2021-02-01 10:00 ` Vinod Koul
  0 siblings, 0 replies; 2+ messages in thread
From: Vinod Koul @ 2021-02-01 10:00 UTC (permalink / raw)
  To: Guanhua Gao; +Cc: Dan Williams, dmaengine, linux-kernel

On 17-12-20, 17:23, Guanhua Gao wrote:
> In case of long format of qDMA command descriptor, there are one frame
> descriptor, three entries in the frame list and two data entries. So the
> size of dma_pool_create for these three fields should be the same with
> the total size of entries respectively, or the contents may be overwritten
> by the next allocated descriptor.
> 
> Signed-off-by: Guanhua Gao <guanhua.gao@nxp.com>
> ---
>  drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c b/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
> index 4ec909e..bc5baa6 100644
> --- a/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
> +++ b/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
> @@ -38,15 +38,17 @@ static int dpaa2_qdma_alloc_chan_resources(struct dma_chan *chan)
>  	if (!dpaa2_chan->fd_pool)
>  		goto err;
>  
> -	dpaa2_chan->fl_pool = dma_pool_create("fl_pool", dev,
> -					      sizeof(struct dpaa2_fl_entry),
> -					      sizeof(struct dpaa2_fl_entry), 0);
> +	dpaa2_chan->fl_pool =
> +		dma_pool_create("fl_pool", dev,
> +				 sizeof(struct dpaa2_fl_entry) * 3,
> +				 sizeof(struct dpaa2_fl_entry), 0);
> +

Can you add comments here as well (like you have for changelog above)
describing why we need 3 times dpaa2_fl_entry


>  	if (!dpaa2_chan->fl_pool)
>  		goto err_fd;
>  
>  	dpaa2_chan->sdd_pool =
>  		dma_pool_create("sdd_pool", dev,
> -				sizeof(struct dpaa2_qdma_sd_d),
> +				sizeof(struct dpaa2_qdma_sd_d) * 2,
>  				sizeof(struct dpaa2_qdma_sd_d), 0);
>  	if (!dpaa2_chan->sdd_pool)
>  		goto err_fl;
> -- 
> 2.7.4

-- 
~Vinod

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-02-01 10:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-17  9:23 [PATCH 1/2] dmaengine: fsl-dpaa2-qdma: Fix the size of dma pools Guanhua Gao
2021-02-01 10:00 ` Vinod Koul

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).