diff options
| author | Petr Štetiar <ynezz@true.cz> | 2023-05-29 19:27:15 +0200 |
|---|---|---|
| committer | Petr Štetiar <ynezz@true.cz> | 2023-06-05 08:31:36 +0200 |
| commit | 38c7cf0e69aeefdec44d513307732e4daf7d9794 (patch) | |
| tree | 2c666ce282da28ffc655bce6d7100de34dcfea04 /package/kernel | |
| parent | b6e0a24c492537e5bbfa015e2a3638ccc53c164b (diff) | |
| download | upstream-38c7cf0e69aeefdec44d513307732e4daf7d9794.tar.gz upstream-38c7cf0e69aeefdec44d513307732e4daf7d9794.tar.bz2 upstream-38c7cf0e69aeefdec44d513307732e4daf7d9794.zip | |
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>
Diffstat (limited to 'package/kernel')
| -rw-r--r-- | package/kernel/qca-nss-dp/patches/0013-nss_dp_main-Use-a-phy-handle-property-to-connect-to-.patch | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/package/kernel/qca-nss-dp/patches/0013-nss_dp_main-Use-a-phy-handle-property-to-connect-to-.patch b/package/kernel/qca-nss-dp/patches/0013-nss_dp_main-Use-a-phy-handle-property-to-connect-to-.patch index ba9b8ef2622..276c87adfc5 100644 --- a/package/kernel/qca-nss-dp/patches/0013-nss_dp_main-Use-a-phy-handle-property-to-connect-to-.patch +++ b/package/kernel/qca-nss-dp/patches/0013-nss_dp_main-Use-a-phy-handle-property-to-connect-to-.patch @@ -155,11 +155,12 @@ Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> - dp_priv->phydev = phy_connect(netdev, phy_id, - &nss_dp_adjust_link, - 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, + &nss_dp_adjust_link, 0, + dp_priv->phy_mii_type); - if (IS_ERR(dp_priv->phydev)) { -- netdev_dbg(netdev, "failed to connect to phy device\n"); ++ if (!(dp_priv->phydev)) { + dev_err(&pdev->dev, "Could not attach to PHY\n"); goto phy_setup_fail; } |
