Hi Vinod, > > > > > > +static void usb_dmac_chan_remove(struct usb_dmac_chan *uchan) > > > > > > +{ > > > > > > + tasklet_kill(&uchan->task); > > > > > that part is good, but how about disabling irq? you can still get insterrupt > > > > > > > > Thank you for the point! I will add calling usb_dmac_chan_halt() to disable the interrupt. > > > On top of that you should free/disable the irq as well > > > > Does this mean I should call free_irq() or something in this remove function? > Yes, that way irq can be be invoked > > > Since this driver uses devm_request_irq(), I don't think the driver call such a function. > > (After this driver was removed, free_irq() was called by devm_irq_release()) > Yes FW will call, but the issue is that isr can get triggered after you ahve > freed up stuff. So to prevent thsi it is recomendded that driver invoked > free_irq() explictly or disable the irq line Thank you for the comment! I understood it. So, I will submit v4 patches. Best regards, Yoshihiro Shimoda > -- > ~Vinod -- 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