OSDN Git Service

net: hns3: Fixes the static checker error warning in hns3_get_link_ksettings()
authorSalil <salil.mehta@huawei.com>
Fri, 18 Aug 2017 11:31:38 +0000 (12:31 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Aug 2017 17:31:56 +0000 (10:31 -0700)
This patch fixes the static check error warning in hns3_get_link_ksettings()
function by re-arranging the code.

Fixes: 496d03e960ae ("net: hns3: Add Ethtool support to HNS3 Driver")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c

index 53cab3a..d636399 100644 (file)
@@ -313,7 +313,7 @@ static int hns3_get_link_ksettings(struct net_device *netdev,
        if (!h->ae_algo || !h->ae_algo->ops)
                return -EOPNOTSUPP;
 
-       /* 1.auto_neg&speed&duplex from cmd */
+       /* 1.auto_neg & speed & duplex from cmd */
        if (h->ae_algo->ops->get_ksettings_an_result) {
                h->ae_algo->ops->get_ksettings_an_result(h, &auto_neg,
                                                         &speed, &duplex);
@@ -329,50 +329,61 @@ static int hns3_get_link_ksettings(struct net_device *netdev,
        }
 
        /* 2.media_type get from bios parameter block */
-       if (h->ae_algo->ops->get_media_type)
+       if (h->ae_algo->ops->get_media_type) {
                h->ae_algo->ops->get_media_type(h, &media_type);
 
-       switch (media_type) {
-       case HNAE3_MEDIA_TYPE_FIBER:
-               cmd->base.port = PORT_FIBRE;
-               supported_caps = HNS3_LM_FIBRE_BIT | HNS3_LM_AUTONEG_BIT |
-                       HNS3_LM_PAUSE_BIT | HNS3_LM_1000BASET_FULL_BIT;
+               switch (media_type) {
+               case HNAE3_MEDIA_TYPE_FIBER:
+                       cmd->base.port = PORT_FIBRE;
+                       supported_caps = HNS3_LM_FIBRE_BIT |
+                                        HNS3_LM_AUTONEG_BIT |
+                                        HNS3_LM_PAUSE_BIT |
+                                        HNS3_LM_1000BASET_FULL_BIT;
+
+                       advertised_caps = supported_caps;
+                       break;
+               case HNAE3_MEDIA_TYPE_COPPER:
+                       cmd->base.port = PORT_TP;
+                       supported_caps = HNS3_LM_TP_BIT |
+                                        HNS3_LM_AUTONEG_BIT |
+                                        HNS3_LM_PAUSE_BIT |
+                                        HNS3_LM_1000BASET_FULL_BIT |
+                                        HNS3_LM_100BASET_FULL_BIT |
+                                        HNS3_LM_100BASET_HALF_BIT |
+                                        HNS3_LM_10BASET_FULL_BIT |
+                                        HNS3_LM_10BASET_HALF_BIT;
+                       advertised_caps = supported_caps;
+                       break;
+               case HNAE3_MEDIA_TYPE_BACKPLANE:
+                       cmd->base.port = PORT_NONE;
+                       supported_caps = HNS3_LM_BACKPLANE_BIT |
+                                        HNS3_LM_PAUSE_BIT |
+                                        HNS3_LM_AUTONEG_BIT |
+                                        HNS3_LM_1000BASET_FULL_BIT |
+                                        HNS3_LM_100BASET_FULL_BIT |
+                                        HNS3_LM_100BASET_HALF_BIT |
+                                        HNS3_LM_10BASET_FULL_BIT |
+                                        HNS3_LM_10BASET_HALF_BIT;
+
+                       advertised_caps = supported_caps;
+                       break;
+               case HNAE3_MEDIA_TYPE_UNKNOWN:
+               default:
+                       cmd->base.port = PORT_OTHER;
+                       supported_caps = 0;
+                       advertised_caps = 0;
+                       break;
+               }
 
-               advertised_caps = supported_caps;
-               break;
-       case HNAE3_MEDIA_TYPE_COPPER:
-               cmd->base.port = PORT_TP;
-               supported_caps = HNS3_LM_TP_BIT | HNS3_LM_AUTONEG_BIT |
-                       HNS3_LM_PAUSE_BIT | HNS3_LM_1000BASET_FULL_BIT |
-                       HNS3_LM_100BASET_FULL_BIT | HNS3_LM_100BASET_HALF_BIT |
-                       HNS3_LM_10BASET_FULL_BIT | HNS3_LM_10BASET_HALF_BIT;
-               advertised_caps = supported_caps;
-               break;
-       case HNAE3_MEDIA_TYPE_BACKPLANE:
-               cmd->base.port = PORT_NONE;
-               supported_caps = HNS3_LM_BACKPLANE_BIT | HNS3_LM_PAUSE_BIT |
-                       HNS3_LM_AUTONEG_BIT | HNS3_LM_1000BASET_FULL_BIT |
-                       HNS3_LM_100BASET_FULL_BIT | HNS3_LM_100BASET_HALF_BIT |
-                       HNS3_LM_10BASET_FULL_BIT | HNS3_LM_10BASET_HALF_BIT;
-
-               advertised_caps = supported_caps;
-               break;
-       case HNAE3_MEDIA_TYPE_UNKNOWN:
-       default:
-               cmd->base.port = PORT_OTHER;
-               supported_caps = 0;
-               advertised_caps = 0;
-               break;
+               /* now, map driver link modes to ethtool link modes */
+               hns3_driv_to_eth_caps(supported_caps, cmd, false);
+               hns3_driv_to_eth_caps(advertised_caps, cmd, true);
        }
 
-       /* now, map driver link modes to ethtool link modes */
-       hns3_driv_to_eth_caps(supported_caps, cmd, false);
-       hns3_driv_to_eth_caps(advertised_caps, cmd, true);
-
        /* 3.mdix_ctrl&mdix get from phy reg */
        if (h->ae_algo->ops->get_mdix_mode)
                h->ae_algo->ops->get_mdix_mode(h, &cmd->base.eth_tp_mdix_ctrl,
-                       &cmd->base.eth_tp_mdix);
+                                              &cmd->base.eth_tp_mdix);
        /* 4.mdio_support */
        cmd->base.mdio_support = ETH_MDIO_SUPPORTS_C22;