Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1337924
| From | Anand Moon <linux.amoon@gmail.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] dmaengine: pl330: initialize tasklet after spin_unlock_irqrestore |
| Date | 2016-02-19 07:50 +0100 |
| Message-ID | <r3N34-13P-7@gated-at.bofh.it> (permalink) |
| References | <r3AyU-uN-43@gated-at.bofh.it> <r3Mqn-MH-7@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Hi Krzysztof, On 19 February 2016 at 11:36, Krzysztof Kozlowski <k.kozlowski@samsung.com> wrote: > 2016-02-19 2:21 GMT+09:00 Anand Moon <linux.amoon@gmail.com>: >> From: Anand Moon <linux.amoon@gmail.com> >> >> 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 > http://lxr.free-electrons.com/source/drivers/dma/pl330.c#L1972 pl330_tasklet function which is initiated by tasklet_init is trying to lock using same spin_unlock_irqsave/restore pch->lock. So better release the pch->lock and then initialize the tasklet_init. Best Regards, -Anand Moon >> >> Signed-off-by: Anand Moon <linux.amoon@gmail.com> >> --- >> 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@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH] dmaengine: pl330: initialize tasklet after spin_unlock_irqrestore Anand Moon <linux.amoon@gmail.com> - 2016-02-18 18:30 +0100
Re: [PATCH] dmaengine: pl330: initialize tasklet after spin_unlock_irqrestore Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-02-19 07:10 +0100
Re: [PATCH] dmaengine: pl330: initialize tasklet after spin_unlock_irqrestore Anand Moon <linux.amoon@gmail.com> - 2016-02-19 07:50 +0100
Re: [PATCH] dmaengine: pl330: initialize tasklet after spin_unlock_irqrestore Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-02-19 08:30 +0100
Re: [PATCH] dmaengine: pl330: initialize tasklet after spin_unlock_irqrestore Lars-Peter Clausen <lars@metafoo.de> - 2016-02-19 09:20 +0100
Re: [PATCH] dmaengine: pl330: initialize tasklet after spin_unlock_irqrestore Anand Moon <linux.amoon@gmail.com> - 2016-02-19 09:50 +0100
Re: [PATCH] dmaengine: pl330: initialize tasklet after spin_unlock_irqrestore Anand Moon <linux.amoon@gmail.com> - 2016-02-21 18:40 +0100
Re: [PATCH] dmaengine: pl330: initialize tasklet after spin_unlock_irqrestore Anand Moon <linux.amoon@gmail.com> - 2016-02-19 09:20 +0100
csiph-web