On Sun, Apr 18, 2021 at 10:14:22PM +0200, Linus Lüssing wrote:
> [...]
> diff --git a/net/batman-adv/multicast.c b/net/batman-adv/multicast.c
> index 28166402..1d63c8cb 100644
> --- a/net/batman-adv/multicast.c
> +++ b/net/batman-adv/multicast.c
> @@ -454,8 +454,9 @@ batadv_mcast_mla_softif_get_ipv6(struct net_device *dev,
> return 0;
> }
>
> - read_lock_bh(&in6_dev->lock);
> - for (pmc6 = in6_dev->mc_list; pmc6; pmc6 = pmc6->next) {
> + for (pmc6 = rcu_dereference(in6_dev->mc_list);
> + pmc6;
> + pmc6 = rcu_dereference(pmc6->next)) {
> if (IPV6_ADDR_MC_SCOPE(&pmc6->mca_addr) <
> IPV6_ADDR_SCOPE_LINKLOCAL)
> continue;
> @@ -484,7 +485,6 @@ batadv_mcast_mla_softif_get_ipv6(struct net_device *dev,
> hlist_add_head(&new->list, mcast_list);
> ret++;
> }
> - read_unlock_bh(&in6_dev->lock);
> rcu_read_unlock();
>
> return ret;
> --
Ups, accidentally added this. Will remove that in the next
version.