From 312fd8afc1cb5d8d2c0a9f71e9392ae268c57882 Mon Sep 17 00:00:00 2001 From: Sven Eckelmann Date: Sun, 17 Mar 2019 09:35:50 +0100 Subject: [PATCH] batman-adv: upgrade package to latest release 2019.1 * support latest kernels (3.16 - 5.1) * coding style cleanups and refactoring * implement meshif, hardif and vlan config interface via netlink * snoop DHCP ACKs to improve DAT cache efficiency * bugs squashed: - avoid potential reference counter underflows and use-after free errors for several objects - fix GCC warning when B.A.T.M.A.N. V is build in but cfg80211 is not available - reject too small VLAN packets before they are processed further Signed-off-by: Sven Eckelmann --- batman-adv/Config.in | 7 ++++--- batman-adv/Makefile | 6 +++--- batman-adv/src/compat-hacks.h | 38 +++++++++++++++++++++++++++++++++-- 3 files changed, 43 insertions(+), 8 deletions(-) diff --git a/batman-adv/Config.in b/batman-adv/Config.in index 127a020..065302c 100644 --- a/batman-adv/Config.in +++ b/batman-adv/Config.in @@ -1,5 +1,5 @@ # SPDX-License-Identifier: GPL-2.0 -# Copyright (C) 2007-2018 B.A.T.M.A.N. contributors: +# Copyright (C) 2007-2019 B.A.T.M.A.N. contributors: # # Marek Lindner, Simon Wunderlich # @@ -94,8 +94,9 @@ config BATMAN_ADV_DEBUG help This is an option for use by developers; most people should say N here. This enables compilation of support for - outputting debugging information to the kernel log. The - output is controlled via the module parameter debug. + outputting debugging information to the debugfs log or tracing + buffer. The output is controlled via the batadv netdev specific + log_level setting. config BATMAN_ADV_TRACING bool "B.A.T.M.A.N. tracing support" diff --git a/batman-adv/Makefile b/batman-adv/Makefile index ed735eb..d88b200 100644 --- a/batman-adv/Makefile +++ b/batman-adv/Makefile @@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=batman-adv -PKG_VERSION:=2019.0 -PKG_RELEASE:=4 -PKG_HASH:=3e97d8a771cdbd7b2df42c52b88e071eaa58b5d28eb4e17a4b13b6698debbdc0 +PKG_VERSION:=2019.1 +PKG_RELEASE:=0 +PKG_HASH:=b99d605e06ca0c02e649b8910995f0b3a93145efb076f01ec0e2ac300cc1c5a9 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION) diff --git a/batman-adv/src/compat-hacks.h b/batman-adv/src/compat-hacks.h index cfeb348..d8de483 100644 --- a/batman-adv/src/compat-hacks.h +++ b/batman-adv/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 +#include_next + +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) */ -- 2.30.2