In none-secure mode, there is still
A low chance of gadget NULL case,
Restore the binded functions list back to
Linked_func list, so next time unbind functions
Could be handled correctly without memory corruption
This is a Samsung platform only issue
Change-Id: Ie46fc52d3eaa6ef60c1a4f6bb83a56229Montana854d
Signed-off-by: a17671 <a17671@motorola.com>
Reviewed-on: https://gerrit.mot.com/
1456923
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com>
Submit-Approved: Jira Key
if (!dev->secure) {
if (!gadget) {
pr_info("%s: Gadget is NULL: %p\n", __func__, gadget);
+ list_for_each_entry(c, &cdev->configs, list) {
+ cfg = container_of(c, struct config_usb_cfg, c);
+ list_for_each_entry_safe(f, tmp, &cfg->func_list, list) {
+ list_move_tail(&f->list, &dev->linked_func);
+ }
+ c->next_interface_id = 0;
+ memset(c->interface, 0, sizeof(c->interface));
+ }
mutex_unlock(&dev->lock);
return -ENODEV;
}