]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
net: ethtool: make dev->hwprov ops-protected
authorJakub Kicinski <kuba@kernel.org>
Fri, 5 Jun 2026 00:29:03 +0000 (17:29 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 9 Jun 2026 17:13:04 +0000 (10:13 -0700)
commit97f51bf91b3afa8819fa10e9282e3f2328bb78e4
treefaa1fa2dbd9cf41bbb22f887e0c83f2bb0d7c1db
parentded86da4bbb78cad74cecc368fee3ae3a296e2ca
net: ethtool: make dev->hwprov ops-protected

dev->hwprov tracks the active hwtstamp provider for the device.
Make it ops protected (instance lock if the netdev driver opts
into holding instance lock around callbacks, otherwise rtnl_lock).

hwprov is written and read in:
 - drivers/net/phy/phy_device.c
    phydev and ops protection don't currently mix, add a comment
 - net/ethtool/
    as of now holds both rtnl lock and ops lock, this one will
    soon only hold one lock or the other

read in:
 - net/core/dev_ioctl.c
    holds both rtnl lock and ops lock
 - net/core/timestamping.c
    RCU reader

The new netdev_ops_lock_dereference() helper does not have
"compat" in the name. The name would be quite long and I think
in this case it should be obvious that we need _a_ lock.
netdev_lock_dereference() already exists and means dev->lock
is always expected.

Reviewed-by: Eric Dumazet <edumazet@google.com>
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/20260605002912.3456868-4-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/phy_device.c
drivers/net/phy/phy_link_topology.c
include/linux/netdevice.h
include/net/netdev_lock.h
net/core/dev_ioctl.c
net/ethtool/tsconfig.c