From c6c36fe28a7bfd8ca21784b2b8b62241f89de06e Mon Sep 17 00:00:00 2001 From: Thomas Monjalon Date: Fri, 26 Oct 2018 23:23:36 +0200 Subject: [PATCH] kni: fix build on Linux < 3.14 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- kernel/linux/kni/kni_fifo.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/kernel/linux/kni/kni_fifo.h b/kernel/linux/kni/kni_fifo.h index 2cb3a4a7b8..3f4781c2ee 100644 --- a/kernel/linux/kni/kni_fifo.h +++ b/kernel/linux/kni/kni_fifo.h @@ -8,6 +8,14 @@ #include +/* 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 */ -- 2.20.1