Commit 7f2ccc8c authored by Peter Oh's avatar Peter Oh Committed by Felipe Balbi

usb: gadget: f_mass_storage: reset endpoint driver data when disabled

Gadgets endpoint driver data is a criteria to judge that
whether the endpoints are in use or not. When gadget gets
assigned an endpoint from endpoint list, they check its
driver data if the driver data is NULL.

If the driver data is not NULL then they regard it as in use.
Therefore all of gadgets should reset their endpoints driver
data to NULL as they are disabled. Otherwise it causes a leak
of endpoint resource.
Signed-off-by: default avatarPeter Oh <poh@broadcom.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 660479aa
...@@ -2260,10 +2260,12 @@ static int do_set_interface(struct fsg_common *common, struct fsg_dev *new_fsg) ...@@ -2260,10 +2260,12 @@ static int do_set_interface(struct fsg_common *common, struct fsg_dev *new_fsg)
/* Disable the endpoints */ /* Disable the endpoints */
if (fsg->bulk_in_enabled) { if (fsg->bulk_in_enabled) {
usb_ep_disable(fsg->bulk_in); usb_ep_disable(fsg->bulk_in);
fsg->bulk_in->driver_data = NULL;
fsg->bulk_in_enabled = 0; fsg->bulk_in_enabled = 0;
} }
if (fsg->bulk_out_enabled) { if (fsg->bulk_out_enabled) {
usb_ep_disable(fsg->bulk_out); usb_ep_disable(fsg->bulk_out);
fsg->bulk_out->driver_data = NULL;
fsg->bulk_out_enabled = 0; fsg->bulk_out_enabled = 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment