staging: rtl8723au: usb_dvobj_init(): A NULL pointer check for usb_host_endpoints...
authorJes Sorensen <Jes.Sorensen@redhat.com>
Thu, 4 Dec 2014 21:15:43 +0000 (16:15 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 17 Jan 2015 21:45:25 +0000 (13:45 -0800)
struct usb_host_interface points to an array of
struct usb_host_endpoints - it makes no sense to do a NULL pointer
check for each pointer.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8723au/os_dep/usb_intf.c

index 373a617ace549a6b7c385297b16cc5c2f547cd2f..500734910d301f61955d7340f49f7f6450507f8a 100644 (file)
@@ -80,11 +80,9 @@ static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf)
        struct usb_config_descriptor *pconf_desc;
        struct usb_host_interface *phost_iface;
        struct usb_interface_descriptor *piface_desc;
-       struct usb_host_endpoint *phost_endp;
        struct usb_endpoint_descriptor *pendp_desc;
-       struct usb_device                *pusbd;
-       int     i;
-       int     status = _FAIL;
+       struct usb_device *pusbd;
+       int i, status = _FAIL;
 
        pdvobjpriv = kzalloc(sizeof(*pdvobjpriv), GFP_KERNEL);
        if (!pdvobjpriv)
@@ -114,42 +112,38 @@ static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf)
        pdvobjpriv->nr_endpoint = piface_desc->bNumEndpoints;
 
        for (i = 0; i < pdvobjpriv->nr_endpoint; i++) {
-               phost_endp = phost_iface->endpoint + i;
-               if (phost_endp) {
-                       pendp_desc = &phost_endp->desc;
-
-                       DBG_8723A("\nusb_endpoint_descriptor(%d):\n", i);
-                       DBG_8723A("bLength =%x\n", pendp_desc->bLength);
-                       DBG_8723A("bDescriptorType =%x\n",
-                                 pendp_desc->bDescriptorType);
-                       DBG_8723A("bEndpointAddress =%x\n",
-                                 pendp_desc->bEndpointAddress);
-                       DBG_8723A("wMaxPacketSize =%d\n",
-                                 le16_to_cpu(pendp_desc->wMaxPacketSize));
-                       DBG_8723A("bInterval =%x\n", pendp_desc->bInterval);
-
-                       if (usb_endpoint_is_bulk_in(pendp_desc)) {
-                               DBG_8723A("usb_endpoint_is_bulk_in = %x\n",
-                                         usb_endpoint_num(pendp_desc));
-                               pdvobjpriv->RtInPipe[pdvobjpriv->RtNumInPipes] =
-                                       usb_endpoint_num(pendp_desc);
-                               pdvobjpriv->RtNumInPipes++;
-                       } else if (usb_endpoint_is_int_in(pendp_desc)) {
-                               DBG_8723A("usb_endpoint_is_int_in = %x, Interval = %x\n",
-                                         usb_endpoint_num(pendp_desc),
-                                         pendp_desc->bInterval);
-                               pdvobjpriv->RtInPipe[pdvobjpriv->RtNumInPipes] =
-                                       usb_endpoint_num(pendp_desc);
-                               pdvobjpriv->RtNumInPipes++;
-                       } else if (usb_endpoint_is_bulk_out(pendp_desc)) {
-                               DBG_8723A("usb_endpoint_is_bulk_out = %x\n",
-                                         usb_endpoint_num(pendp_desc));
-                               pdvobjpriv->RtOutPipe[pdvobjpriv->RtNumOutPipes] =
-                                       usb_endpoint_num(pendp_desc);
-                               pdvobjpriv->RtNumOutPipes++;
-                       }
-                       pdvobjpriv->ep_num[i] = usb_endpoint_num(pendp_desc);
+               pendp_desc = &phost_iface->endpoint[i].desc;
+
+               DBG_8723A("\nusb_endpoint_descriptor(%d):\n", i);
+               DBG_8723A("bLength =%x\n", pendp_desc->bLength);
+               DBG_8723A("bDescriptorType =%x\n", pendp_desc->bDescriptorType);
+               DBG_8723A("bEndpointAddress =%x\n",
+                         pendp_desc->bEndpointAddress);
+               DBG_8723A("wMaxPacketSize =%d\n",
+                         le16_to_cpu(pendp_desc->wMaxPacketSize));
+               DBG_8723A("bInterval =%x\n", pendp_desc->bInterval);
+
+               if (usb_endpoint_is_bulk_in(pendp_desc)) {
+                       DBG_8723A("usb_endpoint_is_bulk_in = %x\n",
+                                 usb_endpoint_num(pendp_desc));
+                       pdvobjpriv->RtInPipe[pdvobjpriv->RtNumInPipes] =
+                               usb_endpoint_num(pendp_desc);
+                       pdvobjpriv->RtNumInPipes++;
+               } else if (usb_endpoint_is_int_in(pendp_desc)) {
+                       DBG_8723A("usb_endpoint_is_int_in = %x, Interval = "
+                                 "%x\n", usb_endpoint_num(pendp_desc),
+                                 pendp_desc->bInterval);
+                       pdvobjpriv->RtInPipe[pdvobjpriv->RtNumInPipes] =
+                               usb_endpoint_num(pendp_desc);
+                       pdvobjpriv->RtNumInPipes++;
+               } else if (usb_endpoint_is_bulk_out(pendp_desc)) {
+                       DBG_8723A("usb_endpoint_is_bulk_out = %x\n",
+                                 usb_endpoint_num(pendp_desc));
+                       pdvobjpriv->RtOutPipe[pdvobjpriv->RtNumOutPipes] =
+                               usb_endpoint_num(pendp_desc);
+                       pdvobjpriv->RtNumOutPipes++;
                }
+               pdvobjpriv->ep_num[i] = usb_endpoint_num(pendp_desc);
        }
        DBG_8723A("nr_endpoint =%d, in_num =%d, out_num =%d\n\n",
                  pdvobjpriv->nr_endpoint, pdvobjpriv->RtNumInPipes,