All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Eric Dumazet <edumazet@google.com>
Cc: "David S . Miller" <davem@davemloft.net>,
	Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
	Kuniyuki Iwashima <kuniyu@google.com>,
	netdev@vger.kernel.org, eric.dumazet@gmail.com
Subject: Re: [PATCH v5 net-next 3/5] rtnetlink: do not acquire RTNL in rtnl_getlink() with RTEXT_FILTER_NAME_ONLY
Date: Tue, 26 May 2026 19:30:03 -0700	[thread overview]
Message-ID: <20260526193003.692cbf01@kernel.org> (raw)
In-Reply-To: <20260525083542.1565964-4-edumazet@google.com>

On Mon, 25 May 2026 08:35:40 +0000 Eric Dumazet wrote:
> +	need_rtnl = !(ext_filter_mask & RTEXT_FILTER_NAME_ONLY);
> +
> +retry:
> +	if (need_rtnl) {
> +		rtnl_lock();

I'm probably paranoid but can't shake the feeling that we should add 
a check here that the device is still registered / alive. Running full
rtnl_fill_ifinfo() after we may have already called ndo_uninit() seems
a little risky.

I don't want to delay the series any longer tho, please follow up
if you agree. Otherwise we can defer until/unless syzbot proves us
wrong..

> +		/* Synchronize the carrier state so we don't report a state
> +		 * that we're not actually going to honour immediately; if
> +		 * the driver just did a carrier off->on transition, we can
> +		 * only TX if link watch work has run, but without this we'd
> +		 * already report carrier on, even if it doesn't work yet.
> +		 */
> +		linkwatch_sync_dev(dev);
> +	}
> +
>  	err = -ENOBUFS;
>  	nskb = nlmsg_new_large(if_nlmsg_size(dev, ext_filter_mask));
> -	if (nskb == NULL)
> -		goto out;
> +	if (nskb)
> +		err = rtnl_fill_ifinfo(nskb, dev, net,
> +				       RTM_NEWLINK, NETLINK_CB(skb).portid,
> +				       nlh->nlmsg_seq, 0, 0, ext_filter_mask,
> +				       0, NULL, 0, netnsid, GFP_KERNEL);

  reply	other threads:[~2026-05-27  2:30 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-25  8:35 [PATCH v5 net-next 0/5] rtnetlink: RTNL avoidance in rtnl_getlink() and rtnl_dump_ifinfo() Eric Dumazet
2026-05-25  8:35 ` [PATCH v5 net-next 1/5] rtnetlink: use nla_nest_end_safe() in rtnl_fill_prop_list() Eric Dumazet
2026-05-25  8:35 ` [PATCH v5 net-next 2/5] net: defer netdev_name_node_alt_flush() call to netdev_run_todo() Eric Dumazet
2026-05-25  8:35 ` [PATCH v5 net-next 3/5] rtnetlink: do not acquire RTNL in rtnl_getlink() with RTEXT_FILTER_NAME_ONLY Eric Dumazet
2026-05-27  2:30   ` Jakub Kicinski [this message]
2026-05-27  5:15     ` Eric Dumazet
2026-05-25  8:35 ` [PATCH v5 net-next 4/5] rtnetlink: do not assume RTNL is held in link_master_filtered() Eric Dumazet
2026-05-25  8:35 ` [PATCH v5 net-next 5/5] rtnetlink: add RTEXT_FILTER_NAME_ONLY support to rtnl_dump_ifinfo() Eric Dumazet
2026-05-27  2:40 ` [PATCH v5 net-next 0/5] rtnetlink: RTNL avoidance in rtnl_getlink() and rtnl_dump_ifinfo() 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=20260526193003.692cbf01@kernel.org \
    --to=kuba@kernel.org \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=eric.dumazet@gmail.com \
    --cc=horms@kernel.org \
    --cc=kuniyu@google.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.