svn commit: r211776 - projects/ofed/head/contrib/ofed/libibverbs/src
Jeff Roberson
jeff at FreeBSD.org
Tue Aug 24 21:25:59 UTC 2010
Author: jeff
Date: Tue Aug 24 21:25:58 2010
New Revision: 211776
URL: http://svn.freebsd.org/changeset/base/211776
Log:
- Fix the ibdev_path, it is not used to open the actual device as I had
thought. The sysctl path is appropriate.
Sponsored by: Isilon Systems, iX Systems, and Panasas
Modified:
projects/ofed/head/contrib/ofed/libibverbs/src/init.c
Modified: projects/ofed/head/contrib/ofed/libibverbs/src/init.c
==============================================================================
--- projects/ofed/head/contrib/ofed/libibverbs/src/init.c Tue Aug 24 21:16:37 2010 (r211775)
+++ projects/ofed/head/contrib/ofed/libibverbs/src/init.c Tue Aug 24 21:25:58 2010 (r211776)
@@ -182,7 +182,8 @@ static int find_sysfs_devs(void)
continue;
snprintf(sysfs_dev->ibdev_path, sizeof sysfs_dev->ibdev_path,
- "/dev/%s", sysfs_dev->ibdev_name);
+ "%s/class/infiniband/%s", ibv_get_sysfs_path(),
+ sysfs_dev->ibdev_name);
sysfs_dev->next = sysfs_dev_list;
sysfs_dev->have_driver = 0;
@@ -385,19 +386,13 @@ static struct ibv_device *try_driver(str
struct ibv_sysfs_dev *sysfs_dev)
{
struct ibv_device *dev;
- char *path;
char value[8];
dev = driver->init_func(sysfs_dev->sysfs_path, sysfs_dev->abi_ver);
if (!dev)
return NULL;
- if (asprintf(&path, "/sys/class/infiniband/%s",
- strrchr(sysfs_dev->ibdev_path, '/')+1) < 0) {
- dev->node_type = IBV_NODE_UNKNOWN;
- goto out;
- }
- if (ibv_read_sysfs_file(path, "node_type", value, sizeof value) < 0) {
+ if (ibv_read_sysfs_file(sysfs_dev->ibdev_path, "node_type", value, sizeof value) < 0) {
fprintf(stderr, PFX "Warning: no node_type attr under %s.\n",
sysfs_dev->ibdev_path);
dev->node_type = IBV_NODE_UNKNOWN;
@@ -406,7 +401,6 @@ static struct ibv_device *try_driver(str
if (dev->node_type < IBV_NODE_CA || dev->node_type > IBV_NODE_RNIC)
dev->node_type = IBV_NODE_UNKNOWN;
}
- free(path);
out:
switch (dev->node_type) {
More information about the svn-src-projects
mailing list