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()


Reply via email to