
On Fri, Sep 04, 2015 at 10:03:42PM -0600, Stephen Warren wrote:
From: Stephen Warren swarren@nvidia.com
By the time g_dnl_unbind() is run, cdev->config has been set to NULL, so the free() there does nothing, and the config struct is leaked. Equally, struct usb_gadget contains a linked list of config structs, so the code should iterate over them all and free each one, rather than freeing one particular config struct.
composite_unbind() already iterates over the list of config structs, and unlinks each from the linked list. Fix this loop to free() each struct as it's unlinked and otherwise forgotten.
Signed-off-by: Stephen Warren swarren@nvidia.com Acked-by: Lukasz Majewski l.majewski@samsung.com Tested-by: Lukasz Majewski l.majewski@samsung.com
Applied to u-boot/master, thanks!