kni: fix build on Linux < 3.14
authorThomas Monjalon <thomas@monjalon.net>
Fri, 26 Oct 2018 21:23:36 +0000 (23:23 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 26 Oct 2018 22:18:06 +0000 (00:18 +0200)
The atomic functions smp_load_acquire() and smp_store_release()
were introduced in Linux 3.14. Older kernels miss the functions:

kni_fifo.h:19:2: error:
implicit declaration of function ‘smp_load_acquire’
kni_fifo.h:30:2: error:
implicit declaration of function ‘smp_store_release’

The fallback is to drop the atomic barrier, as it was before
the commit below.

Fixes: 711859cd0d07 ("kni: fix kernel FIFO synchronization")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
kernel/linux/kni/kni_fifo.h

index 2cb3a4a..3f4781c 100644 (file)
@@ -8,6 +8,14 @@
 
 #include <exec-env/rte_kni_common.h>
 
+/* Skip some memory barriers on Linux < 3.14 */
+#ifndef smp_load_acquire
+#define smp_load_acquire(a) (*(a))
+#endif
+#ifndef smp_store_release
+#define smp_store_release(a, b) *(a) = (b)
+#endif
+
 /**
  * Adds num elements into the fifo. Return the number actually written
  */