USB: composite: Fix USB WHQL Certification Issues
authorJared Suttles <jared.suttles@motorola.com>
Fri, 7 Aug 2009 23:57:49 +0000 (18:57 -0500)
committerColin Cross <ccross@android.com>
Thu, 30 Sep 2010 00:49:16 +0000 (17:49 -0700)
Submitted on behalf of RaviKumar Vembu <ravi.v@motorola.com>
Signed-off-by: Jared Suttles <jared.suttles@motorola.com>
Signed-off-by: Mike Lockwood <lockwood@android.com>
drivers/usb/gadget/composite.c

index 65012ff1c2ed62c9f8624fccc9b84dfbf8195f83..6fd9f08d90107e1a1200378567c92e8fdba71688 100644 (file)
@@ -856,11 +856,11 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
        case USB_REQ_GET_CONFIGURATION:
                if (ctrl->bRequestType != USB_DIR_IN)
                        goto unknown;
-               if (cdev->config)
+               if (cdev->config) {
                        *(u8 *)req->buf = cdev->config->bConfigurationValue;
-               else
+                       value = min(w_length, (u16) 1);
+               } else
                        *(u8 *)req->buf = 0;
-               value = min(w_length, (u16) 1);
                break;
 
        /* function drivers must handle get/set altsetting; if there's
@@ -910,6 +910,9 @@ unknown:
                 */
                switch (ctrl->bRequestType & USB_RECIP_MASK) {
                case USB_RECIP_INTERFACE:
+                       if (cdev->config == NULL)
+                               return value;
+
                        f = cdev->config->interface[intf];
                        break;