OSDN Git Service

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)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Thu, 13 Feb 2014 15:50:37 +0000 (23:50 +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 9ab9469..12fb818 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");