On 21-12-10 12:29:45, Pawel Laszczak wrote: > From: Pawel Laszczak <pawell@xxxxxxxxxxx> > > Patch restrict calling of cdnsp_died function during removing modules > or software disconnect. > This function was called because after transition controller to HALT > state the driver starts handling the deferred interrupt. > In this case such interrupt can be simple ignored. > > Fixes: 3d82904559f4 ("usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver") > cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Pawel Laszczak <pawell@xxxxxxxxxxx> > --- > drivers/usb/cdns3/cdnsp-ring.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/cdns3/cdnsp-ring.c b/drivers/usb/cdns3/cdnsp-ring.c > index e8f5ecbb5c75..e45c3d6e1536 100644 > --- a/drivers/usb/cdns3/cdnsp-ring.c > +++ b/drivers/usb/cdns3/cdnsp-ring.c > @@ -1525,7 +1525,14 @@ irqreturn_t cdnsp_thread_irq_handler(int irq, void *data) > spin_lock_irqsave(&pdev->lock, flags); > > if (pdev->cdnsp_state & (CDNSP_STATE_HALTED | CDNSP_STATE_DYING)) { > - cdnsp_died(pdev); > + /* > + * While removing or stopping driver there may still be deferred > + * not handled interrupt which should not be treated as error. > + * Driver should simply ignore it. > + */ > + if (pdev->gadget_driver) > + cdnsp_died(pdev); > + Reviewed-by: Peter Chen <peter.chen@xxxxxxxxxx> -- Thanks, Peter Chen