• Sebastian Andrzej Siewior's avatar
    usb: gadget: clean the ep in autoconf before returning it. · 609ca228
    Sebastian Andrzej Siewior authored
    Since commit 72c973dd aka ("usb: gadget: add usb_endpoint_descriptor to
    struct usb_ep) the descriptor is part of the ep. Most gadgets like
    g_zero or masstorage call config_ep_by_speed() to grab an available
    endpoint which may be used for FS/HS/SS bulk/iso/intr and in a second
    they assign the proper descriptor by calling config_ep_by_speed(). This
    is good so far. A few of them like ncm call config_ep_by_speed() only if
    ep->desc not assigned earlier. That means ep->desc is never assigned if
    the endpoint was used by another gadget before it was removed.
    
    Some of those gadgets also assign ep->driver_data to NULL on reset or
    ep_disable part _but_ keep a reference to this endpoint. At ep_enable
    time they assign driver_data to their private data. This probably needs
    a clean up of its own.
    Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
    609ca228
epautoconf.c 11.6 KB