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

Reply via email to