[SCSI] fcoe: Call dev_ethtool_get_settings() in fcoe_link_ok
authorYi Zou <yi.zou@intel.com>
Thu, 30 Jul 2009 00:04:01 +0000 (17:04 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Sat, 22 Aug 2009 22:52:03 +0000 (17:52 -0500)
No need to check phys_dev here, just call dev_ethtool_get_settings() directly
will take care of this.

Signed-off-by: Yi Zou <yi.zou@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/fcoe/fcoe.c

index b7dfc6ebed36be64d63883242421d4b7ade85182..81601269f4cd2ac01fabf3f438f7ffe1c3479584 100644 (file)
@@ -1635,29 +1635,25 @@ int fcoe_link_ok(struct fc_lport *lp)
        struct fcoe_softc *fc = lport_priv(lp);
        struct net_device *dev = fc->real_dev;
        struct ethtool_cmd ecmd = { ETHTOOL_GSET };
-       int rc = 0;
 
-       if ((dev->flags & IFF_UP) && netif_carrier_ok(dev)) {
-               dev = fc->phys_dev;
-               if (dev->ethtool_ops->get_settings) {
-                       dev->ethtool_ops->get_settings(dev, &ecmd);
-                       lp->link_supported_speeds &=
-                               ~(FC_PORTSPEED_1GBIT | FC_PORTSPEED_10GBIT);
-                       if (ecmd.supported & (SUPPORTED_1000baseT_Half |
-                                             SUPPORTED_1000baseT_Full))
-                               lp->link_supported_speeds |= FC_PORTSPEED_1GBIT;
-                       if (ecmd.supported & SUPPORTED_10000baseT_Full)
-                               lp->link_supported_speeds |=
-                                       FC_PORTSPEED_10GBIT;
-                       if (ecmd.speed == SPEED_1000)
-                               lp->link_speed = FC_PORTSPEED_1GBIT;
-                       if (ecmd.speed == SPEED_10000)
-                               lp->link_speed = FC_PORTSPEED_10GBIT;
-               }
-       } else
-               rc = -1;
+       if ((dev->flags & IFF_UP) && netif_carrier_ok(dev) &&
+           (!dev_ethtool_get_settings(dev, &ecmd))) {
+               lp->link_supported_speeds &=
+                       ~(FC_PORTSPEED_1GBIT | FC_PORTSPEED_10GBIT);
+               if (ecmd.supported & (SUPPORTED_1000baseT_Half |
+                                     SUPPORTED_1000baseT_Full))
+                       lp->link_supported_speeds |= FC_PORTSPEED_1GBIT;
+               if (ecmd.supported & SUPPORTED_10000baseT_Full)
+                       lp->link_supported_speeds |=
+                               FC_PORTSPEED_10GBIT;
+               if (ecmd.speed == SPEED_1000)
+                       lp->link_speed = FC_PORTSPEED_1GBIT;
+               if (ecmd.speed == SPEED_10000)
+                       lp->link_speed = FC_PORTSPEED_10GBIT;
 
-       return rc;
+               return 0;
+       }
+       return -1;
 }
 
 /**