Hi Vinod, Thanks for the review... > > + > > + chan->is_dmacoherent = of_property_read_bool(node, "dma- > coherent"); > > + zdev->chan = chan; > > + tasklet_init(&chan->tasklet, zynqmp_dma_do_tasklet, (ulong)chan); > > where is this killed? This is killed in the zynqmp_dma_chan_remove() API. > > > + spin_lock_init(&chan->lock); > > + INIT_LIST_HEAD(&chan->active_list); > > + INIT_LIST_HEAD(&chan->pending_list); > > + INIT_LIST_HEAD(&chan->done_list); > > + INIT_LIST_HEAD(&chan->free_list); > > + zynqmp_dma_init(chan); > > + chan->irq = platform_get_irq(pdev, 0); > > + if (chan->irq < 0) > > + return -ENXIO; > > + err = devm_request_irq(&pdev->dev, chan->irq, > zynqmp_dma_irq_handler, 0, > > + "zynqmp-dma", chan); > > this needs to be freed/diabled in remove, dont see that It is freed in the zynqmp_dma_chan_remove() API. Regards, Kedar. -- 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