lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 7 Apr 2022 16:45:03 +0200 From: Andrew Lunn <andrew@...n.ch> To: "huangguangbin (A)" <huangguangbin2@...wei.com> Cc: Oleksij Rempel <o.rempel@...gutronix.de>, davem@...emloft.net, kuba@...nel.org, netdev@...r.kernel.org, linux-kernel@...r.kernel.org, lipeng321@...wei.com, chenhao288@...ilicon.com Subject: Re: [PATCH] net: phy: genphy_loopback: fix loopback failed when speed is unknown > Hi Andrew, > The PHY we test is RTL8211F, it supports 10 half. This problem actually is, > our board has MAC connected with PHY, when loopback test, packet flow is > MAC->PHY->MAC, it needs speed of MAC and PHY should be same when they work. > > If PHY speed is unknown when PHY goes down, we will not set MAC speed in > adjust_link interface. In this case, we hope that PHY speed should not be > changed, as the old code of function genphy_loopback() before patch > "net: phy: genphy_loopback: add link speed configuration". > > If PHY has never link, MAC speed has never be set in adjust_link interface, > yeah, in this case, MAC and PHY may has different speed, and they can not work. > I think we can accept this situation. > > I think it is general problem if there is MAC connected with PHY. Thanks for investigating. Looks like we are getting close the real solution. And it is a generic problem, that the MAC and PHY might not be using the same configuration. So it looks like if the link is down, or speed is UNKNOWN, we need to set phydev->link true, speed 10, duplex half, the PHY into 10/Half and call the adjust_link callback. That should get the MAC and PHY to talk to each other. The open question is what to do when we disable loopback. Maybe we need to always set link false, speed unknown and call phy_start_aneg() to restart the link? Andrew
Powered by blists - more mailing lists