From: Florian Fainelli Date: Mon, 6 Jul 2020 04:27:57 +0000 (-0700) Subject: net: phy: Register ethtool PHY operations X-Git-Tag: x86-urgent-2020-08-15~21^2~311^2~1 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=55d8f053ce1bb2c010458c6e9883b9c7ac12adc3;p=users%2Fdwmw2%2Flinux.git net: phy: Register ethtool PHY operations Utilize ethtool_set_ethtool_phy_ops to register a suitable set of PHY ethtool operations in a dynamic fashion such that ethtool will no longer directy reference PHY library symbols. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller --- diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index cf3505e2f5879..233334406f0ff 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -3027,6 +3027,11 @@ static struct phy_driver genphy_driver = { .set_loopback = genphy_loopback, }; +static const struct ethtool_phy_ops phy_ethtool_phy_ops = { + .start_cable_test = phy_start_cable_test, + .start_cable_test_tdr = phy_start_cable_test_tdr, +}; + static int __init phy_init(void) { int rc; @@ -3035,6 +3040,7 @@ static int __init phy_init(void) if (rc) return rc; + ethtool_set_ethtool_phy_ops(&phy_ethtool_phy_ops); features_init(); rc = phy_driver_register(&genphy_c45_driver, THIS_MODULE); @@ -3056,6 +3062,7 @@ static void __exit phy_exit(void) phy_driver_unregister(&genphy_c45_driver); phy_driver_unregister(&genphy_driver); mdio_bus_exit(); + ethtool_set_ethtool_phy_ops(NULL); } subsys_initcall(phy_init);