And add xen_dom0/compat.h for be compatible with older kernel.

Signed-off-by: Jincheng Miao <jmiao at redhat.com>
---
 lib/librte_eal/linuxapp/xen_dom0/compat.h       | 16 ++++++++++++++++
 lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c |  3 ++-
 2 files changed, 18 insertions(+), 1 deletion(-)
 create mode 100644 lib/librte_eal/linuxapp/xen_dom0/compat.h

diff --git a/lib/librte_eal/linuxapp/xen_dom0/compat.h 
b/lib/librte_eal/linuxapp/xen_dom0/compat.h
new file mode 100644
index 0000000..89dab27
--- /dev/null
+++ b/lib/librte_eal/linuxapp/xen_dom0/compat.h
@@ -0,0 +1,16 @@
+/*
+ * Minimal wrappers to allow compiling xen_dom0 on older kernels.
+ */
+
+#ifndef RHEL_RELEASE_VERSION
+#define RHEL_RELEASE_VERSION(a, b) (((a) << 8) + (b))
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 39) && \
+       (!(defined(RHEL_RELEASE_CODE) && \
+        RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6, 4)))
+
+#define kstrtoul strict_strtoul
+
+#endif /* < 2.6.39 */
+
diff --git a/lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c 
b/lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c
index dfb271d..543bf57 100644
--- a/lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c
+++ b/lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c
@@ -74,6 +74,7 @@
 #include <rte_config.h>
 #include <exec-env/rte_dom0_common.h>

+#include "compat.h"
 #include "dom0_mm_dev.h"

 MODULE_LICENSE("Dual BSD/GPL");
@@ -123,7 +124,7 @@ store_memsize(struct device *dev, struct device_attribute 
*attr,
        int err = 0;
        unsigned long mem_size;

-       if (0 != strict_strtoul(buf, 0, &mem_size))
+       if (0 != kstrtoul(buf, 0, &mem_size))
                return  -EINVAL;

        mutex_lock(&dom0_dev.data_lock);
-- 
1.8.3.1

Reply via email to