diff options
author | Madalin Bucur <madalin.bucur@nxp.com> | 2016-06-30 15:48:05 +0200 |
---|---|---|
committer | Madalin Bucur <madalin.bucur@nxp.com> | 2016-10-04 08:26:09 +0200 |
commit | 604104fc549a32ae928435a48de6761af13836ea (patch) | |
tree | d5afcb8349ff2fa9488a49b80c8d13a0672ee703 /drivers/net/ethernet/freescale | |
parent | fsl/fman: check pcsphy pointer before use (diff) | |
download | linux-604104fc549a32ae928435a48de6761af13836ea.tar.xz linux-604104fc549a32ae928435a48de6761af13836ea.zip |
fsl/fman: check of_get_phy_mode() return value
For unknown compatibles avoid crashing and default to SGMII.
Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
Diffstat (limited to 'drivers/net/ethernet/freescale')
-rw-r--r-- | drivers/net/ethernet/freescale/fman/mac.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/ethernet/freescale/fman/mac.c b/drivers/net/ethernet/freescale/fman/mac.c index e4378c2c1e6a..8fe6b3e253fa 100644 --- a/drivers/net/ethernet/freescale/fman/mac.c +++ b/drivers/net/ethernet/freescale/fman/mac.c @@ -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; |