From 442f3bed6a0964e938c809e8811fa0636ef13f49 Mon Sep 17 00:00:00 2001 From: Jincheng Miao Date: Wed, 10 Dec 2014 21:04:53 +0800 Subject: [PATCH] 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 Acked-by: Thomas Monjalon --- lib/librte_eal/linuxapp/xen_dom0/compat.h | 15 +++++++++++++++ lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c | 3 ++- 2 files changed, 17 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 0000000000..e6eb97f284 --- /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 dfb271dd01..543bf57418 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 #include +#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); -- 2.20.1