On 10/24/18 22:12, Andrew Lunn wrote:
On Wed, Oct 24, 2018 at 09:36:02PM +0200, Holger Hoffstätte wrote:
Hi,
Since 4.19 r8169 depends on phylib:
$lsmod | grep r8169
r8169 81920 0
libphy 57344 2 r8169,realtek
Unfortunately this now gives me the following sysfs error:
$cd /sys/module/realtek/drivers
$ls -l
ls: cannot access 'mdio_bus:RTL8201F 10/100Mbps Ethernet': No such file or
directory
total 0
lrwxrwxrwx 1 root root 0 Oct 24 21:09 'mdio_bus:RTL8201CP Ethernet' ->
'../../../bus/mdio_bus/drivers/RTL8201CP Ethernet'
l????????? ? ? ? ? ? 'mdio_bus:RTL8201F 10/100Mbps Ethernet'
lrwxrwxrwx 1 root root 0 Oct 24 21:09 'mdio_bus:RTL8211 Gigabit Ethernet' ->
'../../../bus/mdio_bus/drivers/RTL8211 Gigabit Ethernet'
[..]
Apparently the forward slash in "10/100Mbps Ethernet" is interpreted as
directory separator that leads nowhere, and was introduced in commit
513588dd44b ("net: phy: realtek: add RTL8201F phy-id and functions").
Would it be acceptable to change the name simply to "RTL8201F Ethernet"?
Hi Holger
Or use "RTL8201F Fast Ethernet"
Yes, even better since it's correct. :)
As expected changing the name .name entry fixes the sysfs behaviour.
diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
index 7fc8508b5..271e8adc3 100644
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -220,7 +220,7 @@ static struct phy_driver realtek_drvs[] = {
.flags = PHY_HAS_INTERRUPT,
}, {
.phy_id = 0x001cc816,
- .name = "RTL8201F 10/100Mbps Ethernet",
+ .name = "RTL8201F Fast Ethernet",
.phy_id_mask = 0x001fffff,
.features = PHY_BASIC_FEATURES,
.flags = PHY_HAS_INTERRUPT,
I wonder if other drivers have similar problems?
davicom.c: .name = "Davicom DM9161B/C",
intel-xway.c: .name = "Intel XWAY PHY11G (PEF 7071/PEF 7072)
v1.3",
intel-xway.c: .name = "Intel XWAY PHY11G (PEF 7071/PEF 7072)
v1.4",
intel-xway.c: .name = "Intel XWAY PHY11G (PEF 7071/PEF 7072)
v1.5 / v1.6",
intel-xway.c: .name = "Intel XWAY PHY22F (PEF 7061) v1.5 /
v1.6",
smsc.c: .name = "SMSC LAN8710/LAN8720",
I'm open to suggestions about how to rename those identifiers.
"|" seems to work but IMHO looks a bit weird:
"Davicom DM9161B/C" -> "Davicom DM9161B|C"
"(PEF 7071/PEF 7072) v1.5 / v1.6" -> "(PEF 7071|7072) v1.5|6"
We can go full regex, which will probably get me voted off the island:
"(PEF 7071/PEF 7072) v1.5 / v1.6" -> "(PEF {7071,7072}) v1.{5,6}"
Cast your votes now!
cheers,
Holger