2021-01-11 16:44:05

by Jeremy Cline

[permalink] [raw]
Subject: [PATCH] drm/ttm: Fix address passed to dma_mapping_error() in ttm_pool_map()

check_unmap() is producing a warning about a missing map error check.
The return value from dma_map_page() should be checked for an error, not
the caller-provided dma_addr.

Fixes: d099fc8f540a ("drm/ttm: new TT backend allocation pool v3")
Signed-off-by: Jeremy Cline <[email protected]>
---
drivers/gpu/drm/ttm/ttm_pool.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/ttm/ttm_pool.c b/drivers/gpu/drm/ttm/ttm_pool.c
index 7b2f60616750..0aa197204b08 100644
--- a/drivers/gpu/drm/ttm/ttm_pool.c
+++ b/drivers/gpu/drm/ttm/ttm_pool.c
@@ -190,7 +190,7 @@ static int ttm_pool_map(struct ttm_pool *pool, unsigned int order,
size_t size = (1ULL << order) * PAGE_SIZE;

addr = dma_map_page(pool->dev, p, 0, size, DMA_BIDIRECTIONAL);
- if (dma_mapping_error(pool->dev, **dma_addr))
+ if (dma_mapping_error(pool->dev, addr))
return -EFAULT;
}

--
2.29.2


2021-01-11 20:24:57

by Christian König

[permalink] [raw]
Subject: Re: [PATCH] drm/ttm: Fix address passed to dma_mapping_error() in ttm_pool_map()

Am 11.01.21 um 17:40 schrieb Jeremy Cline:
> check_unmap() is producing a warning about a missing map error check.
> The return value from dma_map_page() should be checked for an error, not
> the caller-provided dma_addr.
>
> Fixes: d099fc8f540a ("drm/ttm: new TT backend allocation pool v3")
> Signed-off-by: Jeremy Cline <[email protected]>

Good catch. Reviewed and pushed to drm-misc-fixes, should be in the -rc
by the weekend.

Thanks for the help,
Christian.

> ---
> drivers/gpu/drm/ttm/ttm_pool.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_pool.c b/drivers/gpu/drm/ttm/ttm_pool.c
> index 7b2f60616750..0aa197204b08 100644
> --- a/drivers/gpu/drm/ttm/ttm_pool.c
> +++ b/drivers/gpu/drm/ttm/ttm_pool.c
> @@ -190,7 +190,7 @@ static int ttm_pool_map(struct ttm_pool *pool, unsigned int order,
> size_t size = (1ULL << order) * PAGE_SIZE;
>
> addr = dma_map_page(pool->dev, p, 0, size, DMA_BIDIRECTIONAL);
> - if (dma_mapping_error(pool->dev, **dma_addr))
> + if (dma_mapping_error(pool->dev, addr))
> return -EFAULT;
> }
>

2021-01-12 09:38:27

by Jeremy Cline

[permalink] [raw]
Subject: Re: [PATCH] drm/ttm: Fix address passed to dma_mapping_error() in ttm_pool_map()

On Mon, Jan 11, 2021 at 09:21:48PM +0100, Christian König wrote:
> Am 11.01.21 um 17:40 schrieb Jeremy Cline:
> > check_unmap() is producing a warning about a missing map error check.
> > The return value from dma_map_page() should be checked for an error, not
> > the caller-provided dma_addr.
> >
> > Fixes: d099fc8f540a ("drm/ttm: new TT backend allocation pool v3")
> > Signed-off-by: Jeremy Cline <[email protected]>
>
> Good catch. Reviewed and pushed to drm-misc-fixes, should be in the -rc by
> the weekend.
>

Great, many thanks!

- Jeremy