usb: gadget: android: Only call ctrlrequest callback on enabled functions
authorMike Lockwood <lockwood@android.com>
Tue, 2 Aug 2011 15:13:48 +0000 (11:13 -0400)
committerMike Lockwood <lockwood@android.com>
Fri, 12 Aug 2011 22:57:43 +0000 (15:57 -0700)
Signed-off-by: Mike Lockwood <lockwood@android.com>
drivers/usb/gadget/android.c

index c82b43ba628c911660e64b91257094087b915c81..b13633bb684aa9ed675b26a164dc1335933aefd5 100644 (file)
@@ -1040,7 +1040,6 @@ android_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *c)
        struct android_dev              *dev = _android_dev;
        struct usb_composite_dev        *cdev = get_gadget_data(gadget);
        struct usb_request              *req = cdev->req;
-       struct android_usb_function     **functions = dev->functions;
        struct android_usb_function     *f;
        int value = -EOPNOTSUPP;
        unsigned long flags;
@@ -1050,7 +1049,7 @@ android_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *c)
        req->length = 0;
        gadget->ep0->driver_data = cdev;
 
-       while ((f = *functions++)) {
+       list_for_each_entry(f, &dev->enabled_functions, enabled_list) {
                if (f->ctrlrequest) {
                        value = f->ctrlrequest(f, cdev, c);
                        if (value >= 0)