[commits] [openwrt-feed-devel] master: batman-adv-devel: simplify ip_mc_check_igmp() and ipv6_mc_check_mld() calls (501db53)

postmaster at open-mesh.org postmaster at open-mesh.org
Sat Mar 9 13:02:43 CET 2019


Repository : ssh://git@open-mesh.org/openwrt-feed-devel

On branch  : master

>---------------------------------------------------------------

commit 501db53fc606e87b99ea653026dd511752ceca64
Author: Sven Eckelmann <sven at narfation.org>
Date:   Sat Mar 9 12:31:45 2019 +0100

    batman-adv-devel: simplify ip_mc_check_igmp() and ipv6_mc_check_mld() calls
    
    The ip_mc_check_igmp and ipv6_mc_check_mld functions don't use the
    skb_trimmed parameter anymore. batman-adv was restructured to use the new
    kernel interface but the remaining parts of OpenWrt are still using the old
    function signature.
    
    Signed-off-by: Sven Eckelmann <sven at narfation.org>


>---------------------------------------------------------------

501db53fc606e87b99ea653026dd511752ceca64
 batman-adv-devel/src/compat-hacks.h | 38 +++++++++++++++++++++++++++++++++++--
 1 file changed, 36 insertions(+), 2 deletions(-)

diff --git a/batman-adv-devel/src/compat-hacks.h b/batman-adv-devel/src/compat-hacks.h
index cfeb348..d8de483 100644
--- a/batman-adv-devel/src/compat-hacks.h
+++ b/batman-adv-devel/src/compat-hacks.h
@@ -48,9 +48,43 @@ struct sk_buff *skb_checksum_trimmed(struct sk_buff *skb,
 				     unsigned int transport_len,
 				     __sum16(*skb_chkf)(struct sk_buff *skb));
 
-int ip_mc_check_igmp(struct sk_buff *skb, struct sk_buff **skb_trimmed);
+int ip_mc_check_igmp(struct sk_buff *skb);
+int ipv6_mc_check_mld(struct sk_buff *skb);
 
-int ipv6_mc_check_mld(struct sk_buff *skb, struct sk_buff **skb_trimmed);
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
+
+#include_next <linux/igmp.h>
+#include_next <net/addrconf.h>
+
+static inline int batadv_ipv6_mc_check_mld1(struct sk_buff *skb)
+{
+	return ipv6_mc_check_mld(skb, NULL);
+}
+
+static inline int batadv_ipv6_mc_check_mld2(struct sk_buff *skb,
+					    struct sk_buff **skb_trimmed)
+{
+	return ipv6_mc_check_mld(skb, skb_trimmed);
+}
+
+#define ipv6_mc_check_mld_get(_1, _2, ipv6_mc_check_mld_name, ...) ipv6_mc_check_mld_name
+#define ipv6_mc_check_mld(...) \
+	ipv6_mc_check_mld_get(__VA_ARGS__, batadv_ipv6_mc_check_mld2, batadv_ipv6_mc_check_mld1)(__VA_ARGS__)
+
+static inline int batadv_ip_mc_check_igmp1(struct sk_buff *skb)
+{
+	return ip_mc_check_igmp(skb, NULL);
+}
+
+static inline int batadv_ip_mc_check_igmp2(struct sk_buff *skb,
+					   struct sk_buff **skb_trimmed)
+{
+	return ip_mc_check_igmp(skb, skb_trimmed);
+}
+
+#define ip_mc_check_igmp_get(_1, _2, ip_mc_check_igmp_name, ...) ip_mc_check_igmp_name
+#define ip_mc_check_igmp(...) \
+	ip_mc_check_igmp_get(__VA_ARGS__, batadv_ip_mc_check_igmp2, batadv_ip_mc_check_igmp1)(__VA_ARGS__)
 
 #endif /* < KERNEL_VERSION(4, 2, 0) */
 



More information about the commits mailing list