kni: fix build for SLES15-SP3
[dpdk.git] / kernel / linux / kni / compat.h
index bc81d0c..6647856 100644 (file)
 #undef NET_NAME_UNKNOWN
 #endif
 
+/*
+ * RHEL has two different version with different kernel version:
+ * 3.10 is for AMD, Intel, IBM POWER7 and POWER8;
+ * 4.14 is for ARM and IBM POWER9
+ */
 #if (defined(RHEL_RELEASE_CODE) && \
        (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 5)) && \
-       (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(8, 0)))
+       (RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(8, 0)) && \
+       (LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)))
 #define ndo_change_mtu ndo_change_mtu_rh74
 #endif
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
+#define HAVE_MAX_MTU_PARAM
+#endif
+
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
 #define HAVE_SIGNAL_FUNCTIONS_OWN_HEADER
 #endif
+
+/*
+ * iova to kva mapping support can be provided since 4.6.0, but required
+ * kernel version increased to >= 4.10.0 because of the updates in
+ * get_user_pages_remote() kernel API
+ */
+#if KERNEL_VERSION(4, 10, 0) <= LINUX_VERSION_CODE
+#define HAVE_IOVA_TO_KVA_MAPPING_SUPPORT
+#endif
+
+#if KERNEL_VERSION(5, 6, 0) <= LINUX_VERSION_CODE || \
+       (defined(RHEL_RELEASE_CODE) && \
+        RHEL_RELEASE_VERSION(8, 3) <= RHEL_RELEASE_CODE) || \
+        (defined(CONFIG_SUSE_KERNEL) && defined(HAVE_ARG_TX_QUEUE))
+#define HAVE_TX_TIMEOUT_TXQUEUE
+#endif
+
+#if KERNEL_VERSION(5, 9, 0) > LINUX_VERSION_CODE
+#define HAVE_TSK_IN_GUP
+#endif