[maint] batman-adv: Only provide (READ|WRITE)_ONCE when undefined

Message ID 20180311092029.15236-1-sven@narfation.org (mailing list archive)
State Accepted, archived
Commit a155327b3364f69bfdf6b0b017772f79e46f884e
Delegated to: Simon Wunderlich
Headers
Series [maint] batman-adv: Only provide (READ|WRITE)_ONCE when undefined |

Commit Message

Sven Eckelmann March 11, 2018, 9:20 a.m. UTC
  The Debian Jessie 3.16.x kernels (3.16.36-1 and later) modified the the
kernel sources to already provide the READ_ONCE and WRITE_ONCE kernel
macros. The batman-adv compat helper defines will conflict on such kernels
and thus prevent the compilation against these downstream kernels.

Reported-by: Ralf Jung <post@ralfj.de>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
Cc: Ralf Jung <post+openmesh@ralfj.de>

See https://www.open-mesh.org/issues/350
---
 compat-include/linux/compiler.h | 4 ++++
 1 file changed, 4 insertions(+)
  

Patch

diff --git a/compat-include/linux/compiler.h b/compat-include/linux/compiler.h
index 62b6a2f9..45cd49fa 100644
--- a/compat-include/linux/compiler.h
+++ b/compat-include/linux/compiler.h
@@ -26,11 +26,15 @@ 
 
 #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
 
+#ifndef READ_ONCE
 #define READ_ONCE(x) ACCESS_ONCE(x)
+#endif
 
+#ifndef WRITE_ONCE
 #define WRITE_ONCE(x, val) ({ \
 	ACCESS_ONCE(x) = (val); \
 })
+#endif
 
 #endif /* < KERNEL_VERSION(3, 19, 0) */