These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / usb / usbip / vhci_hcd.c
index e9ef1ec..7fbe19d 100644 (file)
@@ -218,7 +218,7 @@ static inline void hub_descriptor(struct usb_hub_descriptor *desc)
        memset(desc, 0, sizeof(*desc));
        desc->bDescriptorType = USB_DT_HUB;
        desc->bDescLength = 9;
-       desc->wHubCharacteristics = __constant_cpu_to_le16(
+       desc->wHubCharacteristics = cpu_to_le16(
                HUB_CHAR_INDV_PORT_LPSM | HUB_CHAR_COMMON_OCPM);
        desc->bNbrPorts = VHCI_NPORTS;
        desc->u.hs.DeviceRemovable[0] = 0xff;
@@ -565,7 +565,9 @@ no_need_xmit:
        usb_hcd_unlink_urb_from_ep(hcd, urb);
 no_need_unlink:
        spin_unlock(&the_controller->lock);
-       usb_hcd_giveback_urb(vhci_to_hcd(the_controller), urb, urb->status);
+       if (!ret)
+               usb_hcd_giveback_urb(vhci_to_hcd(the_controller),
+                                    urb, urb->status);
        return ret;
 }
 
@@ -629,7 +631,7 @@ static int vhci_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
                /* URB was never linked! or will be soon given back by
                 * vhci_rx. */
                spin_unlock(&the_controller->lock);
-               return 0;
+               return -EIDRM;
        }
 
        {