Fix handling of error return code. Before this fix, the error code was handled as unsigned type. Also, on this path if if_mode not found then just handle it as fixed link (i.e mac2mac connection).
Signed-off-by: Claudiu Manoil <claudiu.man...@nxp.com> --- drivers/net/ethernet/freescale/enetc/enetc_pf.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/ethernet/freescale/enetc/enetc_pf.c index 7d6513ff8507..3a556646a2fb 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -751,6 +751,7 @@ static int enetc_of_get_phy(struct enetc_ndev_priv *priv) struct enetc_pf *pf = enetc_si_priv(priv->si); struct device_node *np = priv->dev->of_node; struct device_node *mdio_np; + int phy_mode; int err; if (!np) { @@ -784,17 +785,11 @@ static int enetc_of_get_phy(struct enetc_ndev_priv *priv) } } - priv->if_mode = of_get_phy_mode(np); - if (priv->if_mode < 0) { - dev_err(priv->dev, "missing phy type\n"); - of_node_put(priv->phy_node); - if (of_phy_is_fixed_link(np)) - of_phy_deregister_fixed_link(np); - else - enetc_mdio_remove(pf); - - return -EINVAL; - } + phy_mode = of_get_phy_mode(np); + if (phy_mode < 0) + priv->if_mode = PHY_INTERFACE_MODE_NA; /* fixed link */ + else + priv->if_mode = phy_mode; return 0; } -- 2.17.1