Messages in this thread | | | Date | Thu, 23 Jul 2015 22:51:10 +0530 | From | Vinod Koul <> | Subject | Re: question about drivers/dma/dma-jz4780.c |
| |
On Wed, Jul 22, 2015 at 03:26:01PM +0100, Alex Smith wrote:
> >>>I think the explicit devm_free_irq() here is unnecessary, as when remove is > >>>called there should be no remaining users of the DMA controller and therefore > >>>no chance of an IRQ occurring between the controller being unregistered and an > >>>implicit IRQ release afterwards. > >Are you ensuring that device can no longer sent interrupts and all instances > >of tasklet running or either completed are terminated and no further tasklet > >can be spawned? > > Hi Vinod, > > If I understand correctly, when remove() is called, there should be > no more users of the DMA controller, enforced by the module > reference count. > > Wouldn't that guarantee that there are no more transactions running > and therefore no chance of an interrupt from the controller or a > tasklet still running?
That will only guarantee no new requests are recieved, but you may have tasklet already scheduled or irq sent from HW how do you prevent that?
-- ~Vinod
| |