mirror of
https://github.com/coolsnowwolf/routing.git
synced 2025-05-01 02:51:01 +08:00

* support latest kernels (4.9 - 5.18) * bugs squashed: - resolve "time-of-check-time-of-use" race condition when checking the network namespace of a lower device - fix sanity check of network devices in different namespaces with colliding IDs - prevent transmission errors after splitting large GRO packets into smaller fragments Signed-off-by: Sven Eckelmann <sven@narfation.org>
35 lines
986 B
Diff
35 lines
986 B
Diff
From: Sven Eckelmann <sven@narfation.org>
|
|
Date: Fri, 14 May 2021 19:34:35 +0200
|
|
Subject: batman-adv: Fix build of multicast code against Linux < 5.13
|
|
|
|
Fixes: 007b4c4b031f ("batman-adv: convert ifmcaddr6 to RCU")
|
|
Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
|
|
|
--- a/net/batman-adv/multicast.c
|
|
+++ b/net/batman-adv/multicast.c
|
|
@@ -431,9 +431,14 @@ batadv_mcast_mla_softif_get_ipv6(struct
|
|
return 0;
|
|
}
|
|
|
|
+#if LINUX_VERSION_IS_LESS(5, 13, 0)
|
|
+ read_lock_bh(&in6_dev->lock);
|
|
+ for (pmc6 = in6_dev->mc_list; pmc6; pmc6 = pmc6->next) {
|
|
+#else
|
|
for (pmc6 = rcu_dereference(in6_dev->mc_list);
|
|
pmc6;
|
|
pmc6 = rcu_dereference(pmc6->next)) {
|
|
+#endif
|
|
if (IPV6_ADDR_MC_SCOPE(&pmc6->mca_addr) <
|
|
IPV6_ADDR_SCOPE_LINKLOCAL)
|
|
continue;
|
|
@@ -462,6 +467,9 @@ batadv_mcast_mla_softif_get_ipv6(struct
|
|
hlist_add_head(&new->list, mcast_list);
|
|
ret++;
|
|
}
|
|
+#if LINUX_VERSION_IS_LESS(5, 13, 0)
|
|
+ read_unlock_bh(&in6_dev->lock);
|
|
+#endif
|
|
rcu_read_unlock();
|
|
|
|
return ret;
|