Date: Tue, 24 Aug 2010 21:25:59 +0000 (UTC) From: Jeff Roberson <jeff@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r211776 - projects/ofed/head/contrib/ofed/libibverbs/src Message-ID: <201008242125.o7OLPx2c088463@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201008242125.o7OLPx2c088463>