summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJincheng Miao <jmiao@redhat.com>2014-12-10 11:33:01 +0800
committerThomas Monjalon <thomas.monjalon@6wind.com>2014-12-11 01:42:02 +0100
commit6573369dd735c43930bfddec34124da05b1584df (patch)
tree23f5f6dd34963b59564148eec8e9de693c184aab
parent81ab433fffa4885a76023abd3c8a7e47aee014e3 (diff)
downloaddpdk-6573369dd735c43930bfddec34124da05b1584df.zip
dpdk-6573369dd735c43930bfddec34124da05b1584df.tar.gz
dpdk-6573369dd735c43930bfddec34124da05b1584df.tar.xz
igb_uio: 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. kstrtoul exists from RHEL6.4, so for compatibility with old kernel and RHEL, add some logic to igb_uio/compat.h. Signed-off-by: Jincheng Miao <jmiao@redhat.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
-rw-r--r--lib/librte_eal/linuxapp/igb_uio/compat.h8
-rw-r--r--lib/librte_eal/linuxapp/igb_uio/igb_uio.c4
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/librte_eal/linuxapp/igb_uio/compat.h b/lib/librte_eal/linuxapp/igb_uio/compat.h
index 00934d8..9454382 100644
--- a/lib/librte_eal/linuxapp/igb_uio/compat.h
+++ b/lib/librte_eal/linuxapp/igb_uio/compat.h
@@ -44,6 +44,14 @@ static int pci_num_vf(struct pci_dev *dev)
#endif /* < 2.6.34 */
+#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 */
+
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0) && \
(!(defined(RHEL_RELEASE_CODE) && \
RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6, 3)))
diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
index d1ca26e..47ff2f3 100644
--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
@@ -83,7 +83,7 @@ store_max_vfs(struct device *dev, struct device_attribute *attr,
unsigned long max_vfs;
struct pci_dev *pdev = container_of(dev, struct pci_dev, dev);
- if (0 != strict_strtoul(buf, 0, &max_vfs))
+ if (0 != kstrtoul(buf, 0, &max_vfs))
return -EINVAL;
if (0 == max_vfs)
@@ -174,7 +174,7 @@ store_max_read_request_size(struct device *dev,
unsigned long size = 0;
int ret;
- if (strict_strtoul(buf, 0, &size) != 0)
+ if (0 != kstrtoul(buf, 0, &size))
return -EINVAL;
ret = pcie_set_readrq(pci_dev, (int)size);