diff --git a/batman-adv/Makefile b/batman-adv/Makefile
index 58f2806..3fd463b 100644
--- a/batman-adv/Makefile
+++ b/batman-adv/Makefile
@@ -9,10 +9,10 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=batman-adv
-PKG_VERSION:=2017.4
+PKG_VERSION:=2018.0
PKG_RELEASE:=0
-PKG_MD5SUM:=5d5a845725ccc89255c9e8a714db4b75
-PKG_HASH:=8a50ffacd2bd5b65b2987eb2ae06fb9338c6af46935ec38ba869cca545719a4c
+PKG_MD5SUM:=c39d67cdb5509bf638efc9083e0dd41e
+PKG_HASH:=4826f838e8a2914a9470da25ea2f17f6325c464a130093b20dc7fb4e93f7576c
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/files/compat-hacks.h b/batman-adv/files/compat-hacks.h
index a27408d..d7f30ad 100644
--- a/batman-adv/files/compat-hacks.h
+++ b/batman-adv/files/compat-hacks.h
@@ -333,6 +333,16 @@ static inline void timer_setup(struct timer_list *timer,
container_of(callback_timer, typeof(*var), timer_fieldname)
#endif /* !from_timer */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)
+
+#ifdef __CHECK_POLL
+typedef unsigned __bitwise __poll_t;
+#else
+typedef unsigned __poll_t;
+#endif
+
+#endif /* < KERNEL_VERSION(4, 16, 0) */
/* */
@@ -392,7 +402,7 @@ static inline void timer_setup(struct timer_list *timer,
static inline void ewma_##name##_add(struct ewma_##name *e, \
unsigned long val) \
{ \
- unsigned long internal = ACCESS_ONCE(e->internal); \
+ unsigned long internal = READ_ONCE(e->internal); \
unsigned long weight_rcp = ilog2(_weight_rcp); \
unsigned long precision = _precision; \
\
@@ -401,10 +411,10 @@ static inline void timer_setup(struct timer_list *timer,
BUILD_BUG_ON((_precision) > 30); \
BUILD_BUG_ON_NOT_POWER_OF_2(_weight_rcp); \
\
- ACCESS_ONCE(e->internal) = internal ? \
+ WRITE_ONCE(e->internal, internal ? \
(((internal << weight_rcp) - internal) + \
(val << precision)) >> weight_rcp : \
- (val << precision); \
+ (val << precision)); \
}
/* */
diff --git a/batman-adv/patches/0001-compat-hacks.patch b/batman-adv/patches/0001-compat-hacks.patch
new file mode 100644
index 0000000..0a9994d
--- /dev/null
+++ b/batman-adv/patches/0001-compat-hacks.patch
@@ -0,0 +1,33 @@
+--- a/net/batman-adv/main.c
++++ b/net/batman-adv/main.c
+@@ -19,7 +19,7 @@
+ #include "main.h"
+
+ #include
+-#include
++#include
+ #include
+ #include
+ #include
+--- a/net/batman-adv/tp_meter.c
++++ b/net/batman-adv/tp_meter.c
+@@ -20,7 +20,7 @@
+ #include "main.h"
+
+ #include
+-#include
++#include
+ #include
+ #include
+ #include
+--- a/net/batman-adv/translation-table.c
++++ b/net/batman-adv/translation-table.c
+@@ -21,7 +21,7 @@
+
+ #include
+ #include
+-#include
++#include
+ #include
+ #include
+ #include