amd-xgbe: Add check to be sure amd-xgbe-phy driver is used
authorLendacky, Thomas <Thomas.Lendacky@amd.com>
Fri, 16 Jan 2015 18:46:34 +0000 (12:46 -0600)
committerDavid S. Miller <davem@davemloft.net>
Sat, 17 Jan 2015 03:24:19 +0000 (22:24 -0500)
The amd-xgbe driver relies on the amd-xgbe-phy phylib driver. Add a
check to be sure that if any errors occur during probing of the
amd-xgbe-phy driver then the amd-xgbe driver returns an error.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c

index 7eeb03d271e2da9813a675e2a51f0814a995f332..41e29e2a65b050f7dd22a913eec4402d3db7a8ad 100644 (file)
@@ -260,10 +260,14 @@ int xgbe_mdio_register(struct xgbe_prv_data *pdata)
                of_node_put(phy_node);
                goto err_phy_device;
        }
+       if (!phydev->dev.driver) {
+               dev_err(pdata->dev, "phy driver probe failed\n");
+               ret = -EIO;
+               goto err_phy_device;
+       }
 
        /* Add a reference to the PHY driver so it can't be unloaded */
-       pdata->phy_module = phydev->dev.driver ?
-                           phydev->dev.driver->owner : NULL;
+       pdata->phy_module = phydev->dev.driver->owner;
        if (!try_module_get(pdata->phy_module)) {
                dev_err(pdata->dev, "try_module_get failed\n");
                ret = -EIO;