Re: [PATCH] dmaengine: pl330: initialize tasklet after spin_unlock_irqrestore

From: Krzysztof Kozlowski
Date: Fri Feb 19 2016 - 01:07:03 EST


2016-02-19 2:21 GMT+09:00 Anand Moon <linux.amoon@xxxxxxxxx>:
> From: Anand Moon <linux.amoon@xxxxxxxxx>
>
> pl330_tasklet tasklet uses the same spinlock pch->lock for safe IRQ locking.
> It's safe to initialize pl330_tasklet tasklet after release of the locking.

This is tasklet init, not tasklet execution (which you are referring
to in first sentence). I don't get how usage of spinlock during
execution guarantees the safeness during init... Please describe why
this is safe.

Best regards,
Krzysztof

>
> Signed-off-by: Anand Moon <linux.amoon@xxxxxxxxx>
> ---
> drivers/dma/pl330.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c
> index 17ee758..df2cab1 100644
> --- a/drivers/dma/pl330.c
> +++ b/drivers/dma/pl330.c
> @@ -2091,10 +2091,10 @@ static int pl330_alloc_chan_resources(struct dma_chan *chan)
> return -ENOMEM;
> }
>
> - tasklet_init(&pch->task, pl330_tasklet, (unsigned long) pch);
> -
> spin_unlock_irqrestore(&pch->lock, flags);
>
> + tasklet_init(&pch->task, pl330_tasklet, (unsigned long) pch);
> +
> return 1;
> }
>
> --
> 1.9.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe dmaengine" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html