staging: silicom: remove redundant pci_get_drvdata() call
authorDaeseok Youn <daeseok.youn@gmail.com>
Wed, 23 Apr 2014 08:18:42 +0000 (17:18 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Apr 2014 22:34:16 +0000 (15:34 -0700)
The pci_get_drvdata() and checking NULL for dev are
called twice in while loop in is_bypass_dev().

Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/silicom/bypasslib/bypass.c

index 09e00dac04f3a81fb0516f3c65073d82fa1c37ea..a58251f5a8f8f584cd81ea9f152bab2d6759e874 100644 (file)
@@ -149,38 +149,33 @@ static int is_bypass_dev(int if_index)
 
        while ((pdev = pci_get_class(PCI_CLASS_NETWORK_ETHERNET << 8, pdev))) {
                dev = pci_get_drvdata(pdev);
-               if (dev != NULL) {
-                       dev = pci_get_drvdata(pdev);
-                       if ((dev != NULL) && (dev->ifindex == if_index)) {
-                               if ((pdev->vendor == SILICOM_VID) &&
-                                   (pdev->device >= SILICOM_BP_PID_MIN) &&
-                                   (pdev->device <= SILICOM_BP_PID_MAX)) {
-                                       goto send_cmd;
-                               }
+               if ((dev != NULL) && (dev->ifindex == if_index)) {
+                       if ((pdev->vendor == SILICOM_VID) &&
+                           (pdev->device >= SILICOM_BP_PID_MIN) &&
+                           (pdev->device <= SILICOM_BP_PID_MAX)) {
+                               goto send_cmd;
+                       }
 #if defined(BP_VENDOR_SUPPORT) && defined(ETHTOOL_GDRVINFO)
-                               else {
-                                       struct ethtool_drvinfo info;
-                                       const struct ethtool_ops *ops =
-                                           dev->ethtool_ops;
-                                       int k = 0;
-
-                                       if (ops->get_drvinfo) {
-                                               memset(&info, 0, sizeof(info));
-                                               info.cmd = ETHTOOL_GDRVINFO;
-                                               ops->get_drvinfo(dev, &info);
-                                               for (; bp_desc_array[k]; k++)
-                                                       if (!
-                                                           (strcmp
-                                                            (bp_desc_array[k],
-                                                             info.driver)))
-                                                               goto send_cmd;
-
-                                       }
+                       else {
+                               struct ethtool_drvinfo info;
+                               const struct ethtool_ops *ops =
+                                       dev->ethtool_ops;
+                               int k = 0;
+
+                               if (ops->get_drvinfo) {
+                                       memset(&info, 0, sizeof(info));
+                                       info.cmd = ETHTOOL_GDRVINFO;
+                                       ops->get_drvinfo(dev, &info);
+                                       for (; bp_desc_array[k]; k++)
+                                               if (!(strcmp(bp_desc_array[k],
+                                                            info.driver)))
+                                                       goto send_cmd;
 
                                }
-#endif
-                               return -1;
+
                        }
+#endif
+                       return -1;
                }
        }
  send_cmd: