summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJincheng Miao <jmiao@redhat.com>2014-12-10 21:04:53 +0800
committerThomas Monjalon <thomas.monjalon@6wind.com>2014-12-11 01:42:02 +0100
commit442f3bed6a0964e938c809e8811fa0636ef13f49 (patch)
treec02bdf861ff84551ef190126ddefb9e1e33b306a
parentee19d51ae56dcb685d9a04d9e859873d35565232 (diff)
downloaddpdk-442f3bed6a0964e938c809e8811fa0636ef13f49.zip
dpdk-442f3bed6a0964e938c809e8811fa0636ef13f49.tar.gz
dpdk-442f3bed6a0964e938c809e8811fa0636ef13f49.tar.xz
xen: fix build with kernel 3.18
From upstream kernel commit 3db2e9cd, strict_strto* serial functions are removed. So that we should directly used kstrtoul instead. Add xen_dom0/compat.h to be compatible with older kernel. Signed-off-by: Jincheng Miao <jmiao@redhat.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
-rw-r--r--lib/librte_eal/linuxapp/xen_dom0/compat.h15
-rw-r--r--lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c3
2 files changed, 17 insertions, 1 deletions
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..e6eb97f
--- /dev/null
+++ b/lib/librte_eal/linuxapp/xen_dom0/compat.h
@@ -0,0 +1,15 @@
+/*
+ * 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);