mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-19 05:38:00 +00:00
qca-nss-dp: fix oops in nss_dp_probe
Currently kernel crashes when of_phy_connect has issues: Unable to handle kernel access to user memory outside uaccess routines at virtual address 0000000000000308 ... pc : phy_attached_print+0x28/0x1b0 lr : phy_attached_info+0x14/0x20 ... Call trace: phy_attached_print+0x28/0x1b0 phy_attached_info+0x14/0x20 nss_dp_adjust_link+0x544/0x6c4 [qca_nss_dp] of_phy_connect returns either pointer or NULL, so can't be checked with IS_ERR macro. Signed-off-by: Petr Štetiar <ynezz@true.cz>
This commit is contained in:
parent
b6e0a24c49
commit
38c7cf0e69
@ -155,11 +155,12 @@ Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
|
|||||||
- dp_priv->phydev = phy_connect(netdev, phy_id,
|
- dp_priv->phydev = phy_connect(netdev, phy_id,
|
||||||
- &nss_dp_adjust_link,
|
- &nss_dp_adjust_link,
|
||||||
- dp_priv->phy_mii_type);
|
- dp_priv->phy_mii_type);
|
||||||
|
- if (IS_ERR(dp_priv->phydev)) {
|
||||||
|
- netdev_dbg(netdev, "failed to connect to phy device\n");
|
||||||
+ dp_priv->phydev = of_phy_connect(netdev, dp_priv->phy_node,
|
+ dp_priv->phydev = of_phy_connect(netdev, dp_priv->phy_node,
|
||||||
+ &nss_dp_adjust_link, 0,
|
+ &nss_dp_adjust_link, 0,
|
||||||
+ dp_priv->phy_mii_type);
|
+ dp_priv->phy_mii_type);
|
||||||
if (IS_ERR(dp_priv->phydev)) {
|
+ if (!(dp_priv->phydev)) {
|
||||||
- netdev_dbg(netdev, "failed to connect to phy device\n");
|
|
||||||
+ dev_err(&pdev->dev, "Could not attach to PHY\n");
|
+ dev_err(&pdev->dev, "Could not attach to PHY\n");
|
||||||
goto phy_setup_fail;
|
goto phy_setup_fail;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user