Re: [PATCH 1/1] dmaengine: pl330: Check if the DMA descriptor is NULL

From: Javier Martinez Canillas
Date: Mon Jul 21 2014 - 04:44:26 EST


On 07/21/2014 10:22 AM, Lars-Peter Clausen wrote:
> On 07/20/2014 07:58 PM, Javier Martinez Canillas wrote:
>>
>> If this should not really happen and this patch is only a workaround since the
>> bug is elsewhere, please give me some hints and I'll try to fix it properly. I'm
>> not familiar with the PL330 DMA controller but just found what was the NULL
>> pointer being dereferenced and looked at your changes to see what was different now.
>
> I think the patch is fine as a quick workaround since it is simple and the
> previous commit broke previously working code.
>

Agreed, it matches what the old code was doing and other code is relying on this
behavior so works as a quick fix to avoid the current kernel oops.

> The long term fix is to stop calling dma_pl330_rqcb() from
> pl330_release_channel(). The first thing is you wouldn't expect any transfer
> to be active when the channel is released. And even if it was by accident we
> should not call the descriptor callback, but rather but it just back onto
> the descriptor pool.

Thanks a lot for the clarification. I thought it was something along the lines
of not calling the callback from pl330_release_channel() but preferred to not
change anything that I could not completely understand its side effects.

I'll study the driver more deeply and try to come up with a patch on top of this
one that fixes the actual cause rather than the consequence.

>
> - Lars
>

Best regards,
Javier
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/