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