hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/usb/gadget/configfs.c
....@@ -461,6 +461,12 @@
461461 * from another gadget or a random directory.
462462 * Also a function instance can only be linked once.
463463 */
464
+
465
+ if (gi->composite.gadget_driver.udc_name) {
466
+ ret = -EINVAL;
467
+ goto out;
468
+ }
469
+
464470 list_for_each_entry(a_fi, &gi->available_func, cfs_list) {
465471 if (a_fi == fi)
466472 break;
....@@ -1549,10 +1555,11 @@
15491555 int value = -EOPNOTSUPP;
15501556 struct usb_function_instance *fi;
15511557
1552
- if (!android_device)
1558
+ cdev = get_gadget_data(gadget);
1559
+ if (!cdev)
15531560 return 0;
15541561
1555
- gi = dev_get_drvdata(android_device);
1562
+ gi = container_of(cdev, struct gadget_info, cdev);
15561563 spin_lock_irqsave(&gi->spinlock, flags);
15571564 cdev = get_gadget_data(gadget);
15581565 if (!cdev || gi->unbind) {