usb: gadget: udc_core: Use right kobj when calling sysfs_notify
authorAndreas Larsson <andreas@gaisler.com>
Mon, 15 Sep 2014 10:42:27 +0000 (12:42 +0200)
committerFelipe Balbi <balbi@ti.com>
Tue, 16 Sep 2014 15:01:45 +0000 (10:01 -0500)
The state attribute is connected to the kobj of the udc, not the gadget.

Signed-off-by: Andreas Larsson <andreas@gaisler.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/udc/udc-core.c

index ba661c6da54a145af21adf14774bf93262b3ec26..ad1ceac1546829be9ec919de99815dac00b9a0ba 100644 (file)
@@ -109,8 +109,20 @@ EXPORT_SYMBOL_GPL(usb_gadget_unmap_request);
 static void usb_gadget_state_work(struct work_struct *work)
 {
        struct usb_gadget       *gadget = work_to_gadget(work);
+       struct usb_udc          *udc = NULL;
+
+       mutex_lock(&udc_lock);
+       list_for_each_entry(udc, &udc_list, list)
+               if (udc->gadget == gadget)
+                       goto found;
+       mutex_unlock(&udc_lock);
+
+       return;
+
+found:
+       mutex_unlock(&udc_lock);
 
-       sysfs_notify(&gadget->dev.kobj, NULL, "state");
+       sysfs_notify(&udc->dev.kobj, NULL, "state");
 }
 
 void usb_gadget_set_state(struct usb_gadget *gadget,