[dpdk-dev] [PATCH] kni: fix build on Linux < 3.14

Thomas Monjalon thomas at monjalon.net
Fri Oct 26 23:40:27 CEST 2018


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 at monjalon.net>
---
 kernel/linux/kni/kni_fifo.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/kernel/linux/kni/kni_fifo.h b/kernel/linux/kni/kni_fifo.h
index 2cb3a4a7b..3c0be311f 100644
--- a/kernel/linux/kni/kni_fifo.h
+++ b/kernel/linux/kni/kni_fifo.h
@@ -8,6 +8,13 @@
 
 #include <exec-env/rte_kni_common.h>
 
+#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
  */
-- 
2.19.0



More information about the dev mailing list