diff options
-rw-r--r-- | target/linux/ipq40xx/patches-4.14/706-ar40xx-abort-probe-on-missig-phy.patch | 23 | ||||
-rw-r--r-- | target/linux/ipq40xx/patches-4.19/706-ar40xx-abort-probe-on-missig-phy.patch | 23 |
2 files changed, 46 insertions, 0 deletions
diff --git a/target/linux/ipq40xx/patches-4.14/706-ar40xx-abort-probe-on-missig-phy.patch b/target/linux/ipq40xx/patches-4.14/706-ar40xx-abort-probe-on-missig-phy.patch new file mode 100644 index 0000000000..19474bff0d --- /dev/null +++ b/target/linux/ipq40xx/patches-4.14/706-ar40xx-abort-probe-on-missig-phy.patch @@ -0,0 +1,23 @@ +--- a/drivers/net/phy/ar40xx.c ++++ b/drivers/net/phy/ar40xx.c +@@ -2021,6 +2021,12 @@ static int ar40xx_probe(struct platform_ + /* register switch */ + swdev = &priv->dev; + ++ if (priv->mii_bus == NULL) { ++ dev_err(&pdev->dev, "Probe failed - Missing PHYs!\n"); ++ ret = -ENODEV; ++ goto err_missing_phy; ++ } ++ + swdev->alias = dev_name(&priv->mii_bus->dev); + + swdev->cpu_port = AR40XX_PORT_CPU; +@@ -2052,6 +2058,7 @@ err_unregister_switch: + unregister_switch(&priv->dev); + err_unregister_phy: + phy_driver_unregister(&ar40xx_phy_driver); ++err_missing_phy: + platform_set_drvdata(pdev, NULL); + return ret; + } diff --git a/target/linux/ipq40xx/patches-4.19/706-ar40xx-abort-probe-on-missig-phy.patch b/target/linux/ipq40xx/patches-4.19/706-ar40xx-abort-probe-on-missig-phy.patch new file mode 100644 index 0000000000..19474bff0d --- /dev/null +++ b/target/linux/ipq40xx/patches-4.19/706-ar40xx-abort-probe-on-missig-phy.patch @@ -0,0 +1,23 @@ +--- a/drivers/net/phy/ar40xx.c ++++ b/drivers/net/phy/ar40xx.c +@@ -2021,6 +2021,12 @@ static int ar40xx_probe(struct platform_ + /* register switch */ + swdev = &priv->dev; + ++ if (priv->mii_bus == NULL) { ++ dev_err(&pdev->dev, "Probe failed - Missing PHYs!\n"); ++ ret = -ENODEV; ++ goto err_missing_phy; ++ } ++ + swdev->alias = dev_name(&priv->mii_bus->dev); + + swdev->cpu_port = AR40XX_PORT_CPU; +@@ -2052,6 +2058,7 @@ err_unregister_switch: + unregister_switch(&priv->dev); + err_unregister_phy: + phy_driver_unregister(&ar40xx_phy_driver); ++err_missing_phy: + platform_set_drvdata(pdev, NULL); + return ret; + } |