usb: usbip: Remove unnecessary get_vdev()
authorYuyang Du <yuyang.du@intel.com>
Wed, 5 Apr 2017 22:03:22 +0000 (06:03 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 8 Apr 2017 10:04:42 +0000 (12:04 +0200)
vhci_tx_urb() should be able to get the vhci_device from
its caller vhci_urb_enqueue(), instead of brutal-force
searching it.

Reviewed-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Signed-off-by: Yuyang Du <yuyang.du@intel.com>
Acked-by: Shuah Khan <shuahkh@osg.samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/usbip/vhci_hcd.c

index e4cb9f0..5d8b2c2 100644 (file)
@@ -430,36 +430,8 @@ static int vhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue,
        return retval;
 }
 
-static struct vhci_device *get_vdev(struct usb_device *udev)
+static void vhci_tx_urb(struct urb *urb, struct vhci_device *vdev)
 {
-       struct platform_device *pdev;
-       struct usb_hcd *hcd;
-       struct vhci_hcd *vhci;
-       int pdev_nr, rhport;
-
-       if (!udev)
-               return NULL;
-
-       for (pdev_nr = 0; pdev_nr < vhci_num_controllers; pdev_nr++) {
-               pdev = *(vhci_pdevs + pdev_nr);
-               if (pdev == NULL)
-                       continue;
-               hcd = platform_get_drvdata(pdev);
-               if (hcd == NULL)
-                       continue;
-               vhci = hcd_to_vhci(hcd);
-               for (rhport = 0; rhport < VHCI_HC_PORTS; rhport++) {
-                       if (vhci->vdev[rhport].udev == udev)
-                               return &vhci->vdev[rhport];
-               }
-       }
-
-       return NULL;
-}
-
-static void vhci_tx_urb(struct urb *urb)
-{
-       struct vhci_device *vdev = get_vdev(urb->dev);
        struct vhci_priv *priv;
        struct vhci_hcd *vhci;
        unsigned long flags;
@@ -601,7 +573,7 @@ static int vhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb,
        }
 
 out:
-       vhci_tx_urb(urb);
+       vhci_tx_urb(urb, vdev);
        spin_unlock_irqrestore(&vhci->lock, flags);
 
        return 0;