fsl/fman: check of_get_phy_mode() return value
authorMadalin Bucur <madalin.bucur@nxp.com>
Thu, 30 Jun 2016 13:48:05 +0000 (16:48 +0300)
committerMadalin Bucur <madalin.bucur@nxp.com>
Tue, 4 Oct 2016 06:26:09 +0000 (09:26 +0300)
For unknown compatibles avoid crashing and default to SGMII.

Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
drivers/net/ethernet/freescale/fman/mac.c

index e4378c2c1e6add620dd8f6c110c39a5ed95b7807..8fe6b3e253fa436f0cc87bf8702b827f3b6d9a72 100644 (file)
@@ -663,6 +663,7 @@ static int mac_probe(struct platform_device *_of_dev)
        const u8                *mac_addr;
        u32                      val;
        u8                      fman_id;
+       int                     phy_if;
 
        dev = &_of_dev->dev;
        mac_node = dev->of_node;
@@ -842,13 +843,14 @@ static int mac_probe(struct platform_device *_of_dev)
        }
 
        /* Get the PHY connection type */
-       priv->phy_if = of_get_phy_mode(mac_node);
-       if (priv->phy_if < 0) {
+       phy_if = of_get_phy_mode(mac_node);
+       if (phy_if < 0) {
                dev_warn(dev,
-                        "of_get_phy_mode() for %s failed. Defaulting to MII\n",
+                        "of_get_phy_mode() for %s failed. Defaulting to SGMII\n",
                         mac_node->full_name);
-               priv->phy_if = PHY_INTERFACE_MODE_MII;
+               phy_if = PHY_INTERFACE_MODE_SGMII;
        }
+       priv->phy_if = phy_if;
 
        priv->speed             = phy2speed[priv->phy_if];
        priv->max_speed         = priv->speed;