Repository : ssh://git@open-mesh.org/openwrt-feed-devel
On branch : master
commit 501db53fc606e87b99ea653026dd511752ceca64 Author: Sven Eckelmann sven@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@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) */