OSDN Git Service

dmaengine: k3dma: Avoid null pointer traversal
authorJohn Stultz <john.stultz@linaro.org>
Wed, 18 Dec 2019 19:09:06 +0000 (19:09 +0000)
committerVinod Koul <vkoul@kernel.org>
Mon, 23 Dec 2019 07:51:14 +0000 (13:21 +0530)
commit2f42e05b942fe2fbfb9bbc6e34e1dd8c3ce4f3a4
treec49ab418f77b856be416a1a17283359463d842c1
parenta40c94be2336f3002563c9ae16572143ae3422e2
dmaengine: k3dma: Avoid null pointer traversal

In some cases we seem to submit two transactions in a row, which
causes us to lose track of the first. If we then cancel the
request, we may still get an interrupt, which traverses a null
ds_run value.

So try to avoid starting a new transaction if the ds_run value
is set.

While this patch avoids the null pointer crash, I've had some
reports of the k3dma driver still getting confused, which
suggests the ds_run/ds_done value handling still isn't quite
right. However, I've not run into an issue recently with it
so I think this patch is worth pushing upstream to avoid the
crash.

Signed-off-by: John Stultz <john.stultz@linaro.org>
[add ss tag]
Link: https://lore.kernel.org/r/20191218190906.6641-1-john.stultz@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/k3dma.c