mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 07:22:33 +00:00
a48ed75d6c
The ar40xx driver currently panics in case no QCA807x PHY has been
successfully probed. This happens when the external PHY is still
in reset when probing the ar40xx switch driver.
Note that this patch does not fix the root cause, ar40xx_probe now
simply fails instead of causing a kernel panic due to a nullpointer
dereference.
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit e2c084cabc
)
24 lines
614 B
Diff
24 lines
614 B
Diff
--- 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;
|
|
}
|