On 23-07-13 04:14:29, Pawel Laszczak wrote: > Gadget ACM while unloading module try to dequeue not queued usb > request which causes the kernel to crash. > Patch adds extra condition to check whether usb request is processed > by CDNSP driver. > Why ACM does that? > cc: <stable@xxxxxxxxxxxxxxx> > Fixes: 3d82904559f4 ("usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver") > Signed-off-by: Pawel Laszczak <pawell@xxxxxxxxxxx> > --- > drivers/usb/cdns3/cdnsp-gadget.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/usb/cdns3/cdnsp-gadget.c b/drivers/usb/cdns3/cdnsp-gadget.c > index fff9ec9c391f..3a30c2af0c00 100644 > --- a/drivers/usb/cdns3/cdnsp-gadget.c > +++ b/drivers/usb/cdns3/cdnsp-gadget.c > @@ -1125,6 +1125,9 @@ static int cdnsp_gadget_ep_dequeue(struct usb_ep *ep, > unsigned long flags; > int ret; > > + if (request->status != -EINPROGRESS) > + return 0; > + Why not you use pending list which used at cdnsp_ep_enqueue to do this? > if (!pep->endpoint.desc) { > dev_err(pdev->dev, > "%s: can't dequeue to disabled endpoint\n", > -- > 2.37.2 > -- Thanks, Peter Chen