batman-adv: compat: Add atomic mc_forwarding support for stable kernels
[feed/routing.git] / batman-adv / patches / 0006-batman-adv-make-mc_forwarding-atomic.patch
1 From: Eric Dumazet <edumazet@google.com>
2 Date: Wed, 2 Mar 2022 20:05:13 +0100
3 Subject: batman-adv: make mc_forwarding atomic
4
5 This fixes minor data-races in ip6_mc_input() and
6 batadv_mcast_mla_rtr_flags_softif_get_ipv6()
7
8 Signed-off-by: Eric Dumazet <edumazet@google.com>
9 Signed-off-by: David S. Miller <davem@davemloft.net>
10 [sven@narfation.org: Add ugly hack to get it building with old kernels]
11 Signed-off-by: Sven Eckelmann <sven@narfation.org>
12 Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/56db7c0540e733a1f063ccd6bab1b537a80857eb
13
14 --- a/net/batman-adv/multicast.c
15 +++ b/net/batman-adv/multicast.c
16 @@ -134,7 +134,11 @@ static u8 batadv_mcast_mla_rtr_flags_sof
17 {
18 struct inet6_dev *in6_dev = __in6_dev_get(dev);
19
20 +#if LINUX_VERSION_IS_GEQ(5, 18, 0) // UGLY_HACK_NEW
21 + if (in6_dev && atomic_read(&in6_dev->cnf.mc_forwarding))
22 +#else // UGLY_HACK_OLD
23 if (in6_dev && in6_dev->cnf.mc_forwarding)
24 +#endif // UGLY_HACK_STOP
25 return BATADV_NO_FLAGS;
26 else
27 return BATADV_MCAST_WANT_NO_RTR6;