All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jay Vosburgh <jay.vosburgh@canonical.com>
To: Eric Dumazet <edumazet@google.com>
Cc: "David S . Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Andy Gospodarek <andy@greyhouse.net>,
	netdev@vger.kernel.org, eric.dumazet@gmail.com
Subject: Re: [PATCH net-next 1/3] bonding: no longer use RTNL in bonding_show_bonds()
Date: Tue, 09 Apr 2024 13:37:14 -0700	[thread overview]
Message-ID: <17332.1712695034@famine> (raw)
In-Reply-To: <20240408190437.2214473-2-edumazet@google.com>

Eric Dumazet <edumazet@google.com> wrote:

>netdev structures are already RCU protected.
>
>Change bond_init() and bond_uninit() to use RCU
>enabled list_add_tail_rcu() and list_del_rcu().
>
>Then bonding_show_bonds() can use rcu_read_lock()
>while iterating through bn->dev_list.
>
>Signed-off-by: Eric Dumazet <edumazet@google.com>

Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com>


>---
> drivers/net/bonding/bond_main.c  | 4 ++--
> drivers/net/bonding/bond_sysfs.c | 8 ++++----
> 2 files changed, 6 insertions(+), 6 deletions(-)
>
>diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
>index c9f0415f780ab0a9ecb26424795695eff951421a..08e9bdbf450afdc103931249259c58a08665dc02 100644
>--- a/drivers/net/bonding/bond_main.c
>+++ b/drivers/net/bonding/bond_main.c
>@@ -5933,7 +5933,7 @@ static void bond_uninit(struct net_device *bond_dev)
> 
> 	bond_set_slave_arr(bond, NULL, NULL);
> 
>-	list_del(&bond->bond_list);
>+	list_del_rcu(&bond->bond_list);
> 
> 	bond_debug_unregister(bond);
> }
>@@ -6347,7 +6347,7 @@ static int bond_init(struct net_device *bond_dev)
> 	spin_lock_init(&bond->stats_lock);
> 	netdev_lockdep_set_classes(bond_dev);
> 
>-	list_add_tail(&bond->bond_list, &bn->dev_list);
>+	list_add_tail_rcu(&bond->bond_list, &bn->dev_list);
> 
> 	bond_prepare_sysfs_group(bond);
> 
>diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c
>index 2805135a7205ba444ccaf412df33f621f55a729a..9132033f85fb0e33093e97c55f885a997c95cb4a 100644
>--- a/drivers/net/bonding/bond_sysfs.c
>+++ b/drivers/net/bonding/bond_sysfs.c
>@@ -37,12 +37,12 @@ static ssize_t bonding_show_bonds(const struct class *cls,
> {
> 	const struct bond_net *bn =
> 		container_of_const(attr, struct bond_net, class_attr_bonding_masters);
>-	int res = 0;
> 	struct bonding *bond;
>+	int res = 0;
> 
>-	rtnl_lock();
>+	rcu_read_lock();
> 
>-	list_for_each_entry(bond, &bn->dev_list, bond_list) {
>+	list_for_each_entry_rcu(bond, &bn->dev_list, bond_list) {
> 		if (res > (PAGE_SIZE - IFNAMSIZ)) {
> 			/* not enough space for another interface name */
> 			if ((PAGE_SIZE - res) > 10)
>@@ -55,7 +55,7 @@ static ssize_t bonding_show_bonds(const struct class *cls,
> 	if (res)
> 		buf[res-1] = '\n'; /* eat the leftover space */
> 
>-	rtnl_unlock();
>+	rcu_read_unlock();
> 	return res;
> }
> 
>-- 
>2.44.0.478.gd926399ef9-goog
>
>

  reply	other threads:[~2024-04-09 20:37 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-08 19:04 [PATCH net-next 0/3] bonding: remove RTNL from three sysfs files Eric Dumazet
2024-04-08 19:04 ` [PATCH net-next 1/3] bonding: no longer use RTNL in bonding_show_bonds() Eric Dumazet
2024-04-09 20:37   ` Jay Vosburgh [this message]
2024-04-08 19:04 ` [PATCH net-next 2/3] bonding: no longer use RTNL in bonding_show_slaves() Eric Dumazet
2024-04-09 20:37   ` Jay Vosburgh
2024-04-08 19:04 ` [PATCH net-next 3/3] bonding: no longer use RTNL in bonding_show_queue_id() Eric Dumazet
2024-04-09 20:39   ` Jay Vosburgh
2024-04-09 20:47     ` Eric Dumazet
2024-04-09 20:53       ` Jay Vosburgh
2024-04-10  0:40 ` [PATCH net-next 0/3] bonding: remove RTNL from three sysfs files 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=17332.1712695034@famine \
    --to=jay.vosburgh@canonical.com \
    --cc=andy@greyhouse.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=eric.dumazet@gmail.com \
    --cc=kuba@kernel.org \
    --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.