[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6262890a-7789-e3dd-aa04-58e5e06499dc@gmail.com>
Date: Mon, 29 Mar 2021 21:56:32 +0200
From: Eric Dumazet <eric.dumazet@...il.com>
To: Taehee Yoo <ap420073@...il.com>, netdev@...r.kernel.org,
davem@...emloft.net, kuba@...nel.org
Cc: jwi@...ux.ibm.com, kgraul@...ux.ibm.com, hca@...ux.ibm.com,
gor@...ux.ibm.com, borntraeger@...ibm.com,
mareklindner@...mailbox.ch, sw@...onwunderlich.de, a@...table.cc,
sven@...fation.org, yoshfuji@...ux-ipv6.org, dsahern@...nel.org,
linux-s390@...r.kernel.org, b.a.t.m.a.n@...ts.open-mesh.org
Subject: Re: [PATCH net-next v3 5/7] mld: convert ifmcaddr6 to RCU
On 3/25/21 5:16 PM, Taehee Yoo wrote:
> The ifmcaddr6 has been protected by inet6_dev->lock(rwlock) so that
> the critical section is atomic context. In order to switch this context,
> changing locking is needed. The ifmcaddr6 actually already protected by
> RTNL So if it's converted to use RCU, its control path context can be
> switched to sleepable.
>
I do not really understand the changelog.
You wanted to convert from RCU to RTNL, right ?
Also :
> @@ -571,13 +573,9 @@ int ip6_mc_msfget(struct sock *sk, struct group_filter *gsf,
> if (!ipv6_addr_is_multicast(group))
> return -EINVAL;
>
> - rcu_read_lock();
> - idev = ip6_mc_find_dev_rcu(net, group, gsf->gf_interface);
> -
> - if (!idev) {
> - rcu_read_unlock();
> + idev = ip6_mc_find_dev_rtnl(net, group, gsf->gf_interface);
> + if (!idev)
> return -ENODEV;
> - }
>
I do not see RTNL being acquired before entering ip6_mc_msfget()
Powered by blists - more mailing lists