From: Jakub Kicinski <kuba@kernel•org>
To: davem@davemloft•net
Cc: netdev@vger•kernel.org, edumazet@google•com, pabeni@redhat•com,
andrew+netdev@lunn•ch, horms@kernel•org, jakub@cloudflare•com,
maxime.chevallier@bootlin•com, nb@tipi-net•de, lee@kernel•org,
linux-leds@vger•kernel.org, pavel@kernel•org, jv@jvosburgh•net,
michael.chan@broadcom•com, jhs@mojatatu•com,
vinicius.gomes@intel•com, idosch@nvidia•com, razor@blackwall•org,
hare@suse•de, jhasan@marvell•com, danieller@nvidia•com,
Jakub Kicinski <kuba@kernel•org>
Subject: [PATCH net-next v2 11/11] net: ethtool: make sure __ethtool_get_link_ksettings() is ops-locked
Date: Tue, 2 Jun 2026 18:28:40 -0700 [thread overview]
Message-ID: <20260603012840.2254293-12-kuba@kernel.org> (raw)
In-Reply-To: <20260603012840.2254293-1-kuba@kernel.org>
All drivers which may call *_get_link_ksettings() on ops-locked
devices from paths already holding the ops lock are ready now.
Make __ethtool_get_link_ksettings() take the ops lock, and assert
that it's held in netif_get_link_ksettings().
Signed-off-by: Jakub Kicinski <kuba@kernel•org>
---
net/ethtool/ioctl.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c
index 49da873b673d..a4b0cbae4063 100644
--- a/net/ethtool/ioctl.c
+++ b/net/ethtool/ioctl.c
@@ -439,7 +439,7 @@ struct ethtool_link_usettings {
int netif_get_link_ksettings(struct net_device *dev,
struct ethtool_link_ksettings *link_ksettings)
{
- /* once callers fixed - assert ops locked */
+ netdev_assert_locked_ops_compat(dev);
if (!dev->ethtool_ops->get_link_ksettings)
return -EOPNOTSUPP;
@@ -456,10 +456,14 @@ EXPORT_SYMBOL(netif_get_link_ksettings);
int __ethtool_get_link_ksettings(struct net_device *dev,
struct ethtool_link_ksettings *link_ksettings)
{
+ int ret;
+
ASSERT_RTNL();
- /* once callers fixed - take the ops lock around this call */
- return netif_get_link_ksettings(dev, link_ksettings);
+ netdev_lock_ops(dev);
+ ret = netif_get_link_ksettings(dev, link_ksettings);
+ netdev_unlock_ops(dev);
+ return ret;
}
EXPORT_SYMBOL(__ethtool_get_link_ksettings);
--
2.54.0
next prev parent reply other threads:[~2026-06-03 1:29 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-03 1:28 [PATCH net-next v2 00/11] net: ethtool: make sure __ethtool_get_link_ksettings() is ops-locked Jakub Kicinski
2026-06-03 1:28 ` [PATCH net-next v2 01/11] net: rename netdev_ops_assert_locked() Jakub Kicinski
2026-06-03 7:29 ` Nicolai Buchwitz
2026-06-03 11:15 ` Jakub Sitnicki
2026-06-03 17:05 ` Stanislav Fomichev
2026-06-03 1:28 ` [PATCH net-next v2 02/11] net: ethtool: cmis_cdb: hold instance lock for ops locked devices Jakub Kicinski
2026-06-03 17:06 ` Stanislav Fomichev
2026-06-03 1:28 ` [PATCH net-next v2 03/11] net: document NETDEV_CHANGENAME as ops locked Jakub Kicinski
2026-06-03 12:47 ` Jakub Sitnicki
2026-06-03 17:06 ` Stanislav Fomichev
2026-06-03 1:28 ` [PATCH net-next v2 04/11] net: ethtool: add netif_get_link_ksettings() for correct ops-locked use Jakub Kicinski
2026-06-03 6:40 ` Maxime Chevallier
2026-06-03 17:06 ` Stanislav Fomichev
2026-06-03 1:28 ` [PATCH net-next v2 05/11] net: bonding: don't recurse on the slave's netdev ops lock Jakub Kicinski
2026-06-03 7:20 ` Nicolai Buchwitz
2026-06-03 1:28 ` [PATCH net-next v2 06/11] net: team: don't recurse on the port's " Jakub Kicinski
2026-06-03 1:28 ` [PATCH net-next v2 07/11] net: bridge: " Jakub Kicinski
2026-06-03 7:16 ` Nicolai Buchwitz
2026-06-03 7:54 ` Nikolay Aleksandrov
2026-06-03 13:28 ` Ido Schimmel
2026-06-03 1:28 ` [PATCH net-next v2 08/11] net: sched: don't recurse on the netdev ops lock in qdiscs Jakub Kicinski
2026-06-04 23:38 ` Vinicius Costa Gomes
2026-06-03 1:28 ` [PATCH net-next v2 09/11] leds: trigger: netdev: don't recurse on the netdev ops lock Jakub Kicinski
2026-06-03 1:28 ` [PATCH net-next v2 10/11] scsi: fcoe: don't recurse on the netdev's " Jakub Kicinski
2026-06-03 1:28 ` Jakub Kicinski [this message]
2026-06-03 7:18 ` [PATCH net-next v2 11/11] net: ethtool: make sure __ethtool_get_link_ksettings() is ops-locked Nicolai Buchwitz
2026-06-03 17:06 ` Stanislav Fomichev
2026-06-04 21:30 ` [PATCH net-next v2 00/11] " patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260603012840.2254293-12-kuba@kernel.org \
--to=kuba@kernel$(echo .)org \
--cc=andrew+netdev@lunn$(echo .)ch \
--cc=danieller@nvidia$(echo .)com \
--cc=davem@davemloft$(echo .)net \
--cc=edumazet@google$(echo .)com \
--cc=hare@suse$(echo .)de \
--cc=horms@kernel$(echo .)org \
--cc=idosch@nvidia$(echo .)com \
--cc=jakub@cloudflare$(echo .)com \
--cc=jhasan@marvell$(echo .)com \
--cc=jhs@mojatatu$(echo .)com \
--cc=jv@jvosburgh$(echo .)net \
--cc=lee@kernel$(echo .)org \
--cc=linux-leds@vger$(echo .)kernel.org \
--cc=maxime.chevallier@bootlin$(echo .)com \
--cc=michael.chan@broadcom$(echo .)com \
--cc=nb@tipi-net$(echo .)de \
--cc=netdev@vger$(echo .)kernel.org \
--cc=pabeni@redhat$(echo .)com \
--cc=pavel@kernel$(echo .)org \
--cc=razor@blackwall$(echo .)org \
--cc=vinicius.gomes@intel$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox