Messages in this thread Patch in this message | | | From | Neil Zhang <> | Subject | [PATCH] usb: gadget: don't create new string_container if already exist | Date | Tue, 28 Oct 2014 19:33:58 +0800 |
| |
Don't create new usb_gadget_string_container if the current strings are already exist in the usb_composite_dev. Otherwise the ids_tab will overflow soon if we bind / unbind usb functions frequently like android does.
Signed-off-by: Neil Zhang <zhangwm@marvell.com> --- drivers/usb/gadget/composite.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index a8c18df..6fe3c6b 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c @@ -1183,6 +1183,12 @@ struct usb_string *usb_gstrings_attach(struct usb_composite_dev *cdev, if (!n_gstrings) return ERR_PTR(-EINVAL); + list_for_each_entry(uc, &cdev->gstrings, list) { + n_gs = get_containers_gs(uc); + if (!strcmp(n_gs[0]->strings[0].s, sp[0]->strings[0].s)) + return n_gs[0]->strings; + } + uc = copy_gadget_strings(sp, n_gstrings, n_strings); if (IS_ERR(uc)) return ERR_CAST(uc); -- 1.7.9.5
| |