|
@@ -1151,10 +1151,13 @@ static int ep_enable(struct usb_ep *ep,
|
|
|
|
|
|
/* only internal SW should enable ctrl endpts */
|
|
/* only internal SW should enable ctrl endpts */
|
|
|
|
|
|
- hwep->ep.desc = desc;
|
|
|
|
-
|
|
|
|
- if (!list_empty(&hwep->qh.queue))
|
|
|
|
|
|
+ if (!list_empty(&hwep->qh.queue)) {
|
|
dev_warn(hwep->ci->dev, "enabling a non-empty endpoint!\n");
|
|
dev_warn(hwep->ci->dev, "enabling a non-empty endpoint!\n");
|
|
|
|
+ spin_unlock_irqrestore(hwep->lock, flags);
|
|
|
|
+ return -EBUSY;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ hwep->ep.desc = desc;
|
|
|
|
|
|
hwep->dir = usb_endpoint_dir_in(desc) ? TX : RX;
|
|
hwep->dir = usb_endpoint_dir_in(desc) ? TX : RX;
|
|
hwep->num = usb_endpoint_num(desc);
|
|
hwep->num = usb_endpoint_num(desc);
|