Re: [PATCH][next] dmaengine: ti: edma: fix null dereference because of a typo in pointer name

From: Peter Ujfalusi
Date: Thu Feb 27 2020 - 02:33:37 EST


Colin,

On 26/02/2020 20.59, Colin King wrote:
> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>
> Currently there is a dereference of the null pointer m_ddev. This appears
> to be a typo on the pointer, I believe s_ddev should be used instead.
> Fix this by using the correct pointer.

Thank you for catching it!
This is a mostly unused case to keep supporting the legacy EDMA binding
which should be gone by now for some time, but there might be boards out
there still booting in that way...

I have copied the dma_cap_set() line from the testable code path.

Acked-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx>

> Addresses-Coverity: ("Explicit null dereferenced")
> Fixes: eb0249d50153 ("dmaengine: ti: edma: Support for interleaved mem to mem transfer")
> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> ---
> drivers/dma/ti/edma.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/dma/ti/edma.c b/drivers/dma/ti/edma.c
> index 2b1fdd438e7f..c4a5c170c1f9 100644
> --- a/drivers/dma/ti/edma.c
> +++ b/drivers/dma/ti/edma.c
> @@ -1992,7 +1992,7 @@ static void edma_dma_init(struct edma_cc *ecc, bool legacy_mode)
> "Legacy memcpy is enabled, things might not work\n");
>
> dma_cap_set(DMA_MEMCPY, s_ddev->cap_mask);
> - dma_cap_set(DMA_INTERLEAVE, m_ddev->cap_mask);
> + dma_cap_set(DMA_INTERLEAVE, s_ddev->cap_mask);
> s_ddev->device_prep_dma_memcpy = edma_prep_dma_memcpy;
> s_ddev->device_prep_interleaved_dma = edma_prep_dma_interleaved;
> s_ddev->directions = BIT(DMA_MEM_TO_MEM);
>

- PÃter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki