From: Vicente Bergas <vicencb@gmail.com>
To: Serge Semin <fancer.lancer@gmail.com>,
Russell King <rmk+kernel@armlinux.org.uk>,
Andrew Lunn <andrew@lunn.ch>,
Florian Fainelli <f.fainelli@gmail.com>,
Heiner Kallweit <hkallweit1@gmail.com>
Cc: <netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: net: phy: realtek: regression, kernel null pointer dereference
Date: Fri, 10 May 2019 17:05:13 +0200 [thread overview]
Message-ID: <16f75ff4-e3e3-4d96-b084-e772e3ce1c2b@gmail.com> (raw)
Hello,
there is a regression on linux v5.1-9573-gb970afcfcabd with a kernel null
pointer dereference.
The issue is the commit f81dadbcf7fd067baf184b63c179fc392bdb226e
net: phy: realtek: Add rtl8211e rx/tx delays config
which uncovered a bug in phy-core when attempting to call
phydev->drv->read_page
which can be null.
The patch to drivers/net/phy/phy-core.c below fixes the kernel null pointer
dereference. After applying the patch, there is still no network. I have
also tested the patch to drivers/net/phy/realtek.c, but no success. The
system hangs forever while initializing eth0.
Any suggestions?
Regards,
Vicenç.
--- a/drivers/net/phy/phy-core.c
+++ b/drivers/net/phy/phy-core.c
@@ -648,11 +648,17 @@
static int __phy_read_page(struct phy_device *phydev)
{
+ if (!phydev->drv->read_page)
+ return -EOPNOTSUPP;
+
return phydev->drv->read_page(phydev);
}
static int __phy_write_page(struct phy_device *phydev, int page)
{
+ if (!phydev->drv->write_page)
+ return -EOPNOTSUPP;
+
return phydev->drv->write_page(phydev, page);
}
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -214,8 +214,10 @@
* for details).
*/
oldpage = phy_select_page(phydev, 0x7);
- if (oldpage < 0)
- goto err_restore_page;
+ if (oldpage < 0) {
+ dev_warn(&phydev->mdio.dev, "Unable to set rgmii delays\n");
+ return 0;
+ }
ret = phy_write(phydev, RTL821x_EXT_PAGE_SELECT, 0xa4);
if (ret)
next reply other threads:[~2019-05-10 15:05 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-10 15:05 Vicente Bergas [this message]
2019-05-10 20:28 ` net: phy: realtek: regression, kernel null pointer dereference Heiner Kallweit
2019-05-10 21:18 ` Vicente Bergas
2019-05-11 14:46 ` Vicente Bergas
2019-05-11 14:56 ` Heiner Kallweit
2019-05-11 15:06 ` Vicente Bergas
2019-05-13 10:29 ` Serge Semin
2019-05-13 10:51 ` Serge Semin
2019-05-13 12:19 ` Vicente Bergas
2019-05-13 12:42 ` Serge Semin
2019-05-13 12:51 ` Andrew Lunn
2019-05-13 13:01 ` Serge Semin
2019-05-13 13:33 ` Vicente Bergas
2019-05-13 7:29 ` Serge Semin
2019-05-11 15:08 ` Andrew Lunn
2019-05-11 15:16 ` Vicente Bergas
2019-05-11 15:25 ` Andrew Lunn
2019-05-10 21:04 ` Russell King - ARM Linux admin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=16f75ff4-e3e3-4d96-b084-e772e3ce1c2b@gmail.com \
--to=vicencb@gmail.com \
--cc=andrew@lunn.ch \
--cc=f.fainelli@gmail.com \
--cc=fancer.lancer@gmail.com \
--cc=hkallweit1@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=rmk+kernel@armlinux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.