Hi Baolu, On 11 October 2016 at 12:32, Lu Baolu <baolu...@linux.intel.com> wrote: > Hi, > > On 10/11/2016 12:07 PM, Baolin Wang wrote: >>>> /* >>>> >> + * usb_charger_unregister() - Unregister a usb charger. >>>> >> + * @uchger - the usb charger to be unregistered. >>>> >> + */ >>>> >> +static int usb_charger_unregister(struct usb_charger *uchger) >>>> >> +{ >>>> >> + ida_simple_remove(&usb_charger_ida, uchger->id); >>>> >> + sysfs_remove_groups(&uchger->gadget->dev.kobj, >>>> >> usb_charger_groups); >>>> >> + >>>> >> + mutex_lock(&charger_lock); >>>> >> + list_del(&uchger->list); >>>> >> + mutex_unlock(&charger_lock); >>>> >> + >>>> >> + kfree(uchger); >>> > >>> > Any reasons you want to put kfree() here? You allocated the memory >>> > in usb_charger_init(). Isn't usb_charger_exit() a better place? >> The usb_charger_exit() will issue usb_charger_unregister() and we need >> use the usb_charger structure in usb_charger_unregister() to >> unregister the usb charger. >> > > This seems not to be a strong reason. :-) > > You can unregister the charger first and then free the structure. > Just do the reverse operation of what you have done in the init > function.
Make sense to me. I will modify this in next version. Thanks for your comments. -- Baolin.wang Best Regards -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html