Loading drivers/usb/gadget/f_fs.c +11 −2 Original line number Diff line number Diff line Loading @@ -879,13 +879,21 @@ first_try: ret = -EIO; } else if (unlikely(wait_for_completion_interruptible(&done))) { spin_lock_irq(&epfile->ffs->eps_lock); if (ep->ep) /* * While we were acquiring lock endpoint got disabled * (disconnect) or changed (composition switch) ? */ if (epfile->ep == ep) usb_ep_dequeue(ep->ep, req); spin_unlock_irq(&epfile->ffs->eps_lock); ret = -EINTR; } else { spin_lock_irq(&epfile->ffs->eps_lock); if (ep->ep) /* * While we were acquiring lock endpoint got disabled * (disconnect) or changed (composition switch) ? */ if (epfile->ep == ep) ret = ep->status; else ret = -ENODEV; Loading Loading @@ -1565,6 +1573,7 @@ static void ffs_func_free(struct ffs_function *func) if (ep->ep && ep->req) usb_ep_free_request(ep->ep, ep->req); ep->req = NULL; ep->ep = NULL; ++ep; } while (--count); spin_unlock_irqrestore(&func->ffs->eps_lock, flags); Loading Loading
drivers/usb/gadget/f_fs.c +11 −2 Original line number Diff line number Diff line Loading @@ -879,13 +879,21 @@ first_try: ret = -EIO; } else if (unlikely(wait_for_completion_interruptible(&done))) { spin_lock_irq(&epfile->ffs->eps_lock); if (ep->ep) /* * While we were acquiring lock endpoint got disabled * (disconnect) or changed (composition switch) ? */ if (epfile->ep == ep) usb_ep_dequeue(ep->ep, req); spin_unlock_irq(&epfile->ffs->eps_lock); ret = -EINTR; } else { spin_lock_irq(&epfile->ffs->eps_lock); if (ep->ep) /* * While we were acquiring lock endpoint got disabled * (disconnect) or changed (composition switch) ? */ if (epfile->ep == ep) ret = ep->status; else ret = -ENODEV; Loading Loading @@ -1565,6 +1573,7 @@ static void ffs_func_free(struct ffs_function *func) if (ep->ep && ep->req) usb_ep_free_request(ep->ep, ep->req); ep->req = NULL; ep->ep = NULL; ++ep; } while (--count); spin_unlock_irqrestore(&func->ffs->eps_lock, flags); Loading