summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJincheng Miao <jmiao@redhat.com>2014-12-10 11:33:02 +0800
committerThomas Monjalon <thomas.monjalon@6wind.com>2014-12-11 01:42:02 +0100
commitee19d51ae56dcb685d9a04d9e859873d35565232 (patch)
treec797e27f746d7a526a8d18adb7d3a35bbee72f34
parent6573369dd735c43930bfddec34124da05b1584df (diff)
downloaddpdk-ee19d51ae56dcb685d9a04d9e859873d35565232.zip
dpdk-ee19d51ae56dcb685d9a04d9e859873d35565232.tar.gz
dpdk-ee19d51ae56dcb685d9a04d9e859873d35565232.tar.xz
kni: 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 kni/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/kni/compat.h15
-rw-r--r--lib/librte_eal/linuxapp/kni/kni_vhost.c2
2 files changed, 16 insertions, 1 deletions
diff --git a/lib/librte_eal/linuxapp/kni/compat.h b/lib/librte_eal/linuxapp/kni/compat.h
new file mode 100644
index 0000000..0d87421
--- /dev/null
+++ b/lib/librte_eal/linuxapp/kni/compat.h
@@ -0,0 +1,15 @@
+/*
+ * Minimal wrappers to allow compiling kni 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/kni/kni_vhost.c b/lib/librte_eal/linuxapp/kni/kni_vhost.c
index 7bcc985..c05c868 100644
--- a/lib/librte_eal/linuxapp/kni/kni_vhost.c
+++ b/lib/librte_eal/linuxapp/kni/kni_vhost.c
@@ -740,7 +740,7 @@ set_sock_en(struct device *dev, struct device_attribute *attr,
unsigned long en;
int err = 0;
- if (0 != strict_strtoul(buf, 0, &en))
+ if (0 != kstrtoul(buf, 0, &en))
return -EINVAL;
if (en)