USB: remove duplicate out endpoint creation in MTP mode
authorPeter Oh <poh@broadcom.com>
Thu, 12 Sep 2013 01:42:18 +0000 (01:42 +0000)
committerJohn Stultz <john.stultz@linaro.org>
Tue, 16 Feb 2016 21:51:59 +0000 (13:51 -0800)
Android MTP gadget uses 3 endpoints which are 1 in endpoint,
1 out endpoint, and 1 interrupt endpoint. However when MTP
gadget creates its endpoints, it creates the out endpoint twice
and overwrites the first created out endpoint with the second one,
so that it causes a leak of endpoint resources.

Change-Id: Iba82950095610b26b362f4b10a67cedfb1fee366
Signed-off-by: Peter Oh <poh@broadcom.com>
Reviewed-on: http://mps-gerrit.broadcom.com/37744
Reviewed-by: Graham Williams <gwilli@broadcom.com>
Reviewed-by: John Garry <jgarry@broadcom.com>
Branch-Open: Branch Status <branch_status_noreply@broadcom.com>
Reviewed-by: Checkpatch Status <checkpatch_status_noreply@broadcom.com>
Reviewed-by: Joyjit Nath <joyjit@broadcom.com>
Tested-by: AutoSubmit Status <autosubmit_status_noreply@broadcom.com>
drivers/usb/gadget/f_mtp.c

index 9ab94697c196313acfe0518e6e5a85be9ba07958..12fb818ab147c60a83786f51e87287dd64e87b08 100644 (file)
@@ -410,15 +410,6 @@ static int mtp_create_bulk_endpoints(struct mtp_dev *dev,
        ep->driver_data = dev;          /* claim the endpoint */
        dev->ep_out = ep;
 
-       ep = usb_ep_autoconfig(cdev->gadget, out_desc);
-       if (!ep) {
-               DBG(cdev, "usb_ep_autoconfig for ep_out failed\n");
-               return -ENODEV;
-       }
-       DBG(cdev, "usb_ep_autoconfig for mtp ep_out got %s\n", ep->name);
-       ep->driver_data = dev;          /* claim the endpoint */
-       dev->ep_out = ep;
-
        ep = usb_ep_autoconfig(cdev->gadget, intr_desc);
        if (!ep) {
                DBG(cdev, "usb_ep_autoconfig for ep_intr failed\n");