git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mlx4: avoid init errors when kernel modules are not loaded
[dpdk.git]
/
lib
/
librte_pmd_mlx4
/
mlx4.c
diff --git
a/lib/librte_pmd_mlx4/mlx4.c
b/lib/librte_pmd_mlx4/mlx4.c
index
b5774c4
..
3a45746
100644
(file)
--- a/
lib/librte_pmd_mlx4/mlx4.c
+++ b/
lib/librte_pmd_mlx4/mlx4.c
@@
-4423,6
+4423,10
@@
mlx4_pci_devinit(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
list = ibv_get_device_list(&i);
if (list == NULL) {
assert(errno);
list = ibv_get_device_list(&i);
if (list == NULL) {
assert(errno);
+ if (errno == ENOSYS) {
+ WARN("cannot list devices, is ib_uverbs loaded?");
+ return 0;
+ }
return -errno;
}
assert(i >= 0);
return -errno;
}
assert(i >= 0);
@@
-4451,9
+4455,15
@@
mlx4_pci_devinit(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
break;
}
if (attr_ctx == NULL) {
break;
}
if (attr_ctx == NULL) {
- if (err == 0)
- err = ENODEV;
ibv_free_device_list(list);
ibv_free_device_list(list);
+ switch (err) {
+ case 0:
+ WARN("cannot access device, is mlx4_ib loaded?");
+ return 0;
+ case EINVAL:
+ WARN("cannot use device, are drivers up to date?");
+ return 0;
+ }
assert(err > 0);
return -err;
}
assert(err > 0);
return -err;
}