--- linux-4.9.37/drivers/usb/gadget/configfs.c 2017-07-12 16:42:41.000000000 +0300 +++ linux-4.9.y/drivers/usb/gadget/configfs.c 2021-06-07 13:01:34.000000000 +0300 @@ -1209,6 +1209,9 @@ list_for_each_entry_safe(f, tmp, &c->functions, list) { + if (f->disable) + f->disable(f); + list_move_tail(&f->list, &cfg->func_list); if (f->unbind) { dev_dbg(&gi->cdev.gadget->dev, @@ -1216,6 +1219,9 @@ f->name, f); f->unbind(c, f); } + + if (f->bind_deactivated) + usb_function_activate(f); } c->next_interface_id = 0; memset(c->interface, 0, sizeof(c->interface));