[dpdk-dev,v2,2/2] eal: replace strict_strtoul with kstrtoul
Commit Message
From upstream kernel commit 3db2e9cd, strict_strto* serial functions
are removed. So that we should directly used kstrtoul instead.
For compatible with old kernel and RHEL6, add some logic to
igb_uio/compat.h, same as what we do for pci_num_vf().
Signed-off-by: Jincheng Miao <jmiao@redhat.com>
---
lib/librte_eal/linuxapp/igb_uio/compat.h | 8 ++++++++
lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 4 ++--
lib/librte_eal/linuxapp/kni/kni_vhost.c | 2 +-
lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c | 2 +-
4 files changed, 12 insertions(+), 4 deletions(-)
Comments
2014-10-31 15:37, Jincheng Miao:
> From upstream kernel commit 3db2e9cd, strict_strto* serial functions
> are removed. So that we should directly used kstrtoul instead.
>
> For compatible with old kernel and RHEL6, add some logic to
> igb_uio/compat.h, same as what we do for pci_num_vf().
>
> Signed-off-by: Jincheng Miao <jmiao@redhat.com>
> ---
> lib/librte_eal/linuxapp/igb_uio/compat.h | 8 ++++++++
> lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 4 ++--
> lib/librte_eal/linuxapp/kni/kni_vhost.c | 2 +-
> lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c | 2 +-
You are replacing strict_strtoul in kni and xen_dom0 without providing
a compatibility fallback.
@@ -45,6 +45,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)))
@@ -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);
@@ -739,7 +739,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)
@@ -123,7 +123,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);