Loading drivers/infiniband/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ menuconfig INFINIBAND tristate "InfiniBand support" depends on PCI || BROKEN depends on HAS_IOMEM depends on NET ---help--- Core support for InfiniBand (IB). Make sure to also select any protocols you wish to use as well as drivers for your Loading drivers/infiniband/core/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ obj-$(CONFIG_INFINIBAND_USER_ACCESS) += ib_uverbs.o ib_ucm.o \ $(user_access-y) ib_core-y := packer.o ud_header.o verbs.o sysfs.o \ device.o fmr_pool.o cache.o device.o fmr_pool.o cache.o netlink.o ib_core-$(CONFIG_INFINIBAND_USER_MEM) += umem.o ib_mad-y := mad.o smi.o agent.o mad_rmpp.o Loading drivers/infiniband/core/cm.c +8 −0 Original line number Diff line number Diff line Loading @@ -3639,8 +3639,16 @@ static struct kobj_type cm_port_obj_type = { .release = cm_release_port_obj }; static char *cm_devnode(struct device *dev, mode_t *mode) { *mode = 0666; return kasprintf(GFP_KERNEL, "infiniband/%s", dev_name(dev)); } struct class cm_class = { .owner = THIS_MODULE, .name = "infiniband_cm", .devnode = cm_devnode, }; EXPORT_SYMBOL(cm_class); Loading drivers/infiniband/core/cma.c +200 −108 File changed.Preview size limit exceeded, changes collapsed. Show changes drivers/infiniband/core/device.c +22 −3 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ #include <linux/slab.h> #include <linux/init.h> #include <linux/mutex.h> #include <rdma/rdma_netlink.h> #include "core_priv.h" Loading Loading @@ -725,22 +726,40 @@ static int __init ib_core_init(void) return -ENOMEM; ret = ib_sysfs_setup(); if (ret) if (ret) { printk(KERN_WARNING "Couldn't create InfiniBand device class\n"); goto err; } ret = ibnl_init(); if (ret) { printk(KERN_WARNING "Couldn't init IB netlink interface\n"); goto err_sysfs; } ret = ib_cache_setup(); if (ret) { printk(KERN_WARNING "Couldn't set up InfiniBand P_Key/GID cache\n"); ib_sysfs_cleanup(); destroy_workqueue(ib_wq); goto err_nl; } return 0; err_nl: ibnl_cleanup(); err_sysfs: ib_sysfs_cleanup(); err: destroy_workqueue(ib_wq); return ret; } static void __exit ib_core_cleanup(void) { ib_cache_cleanup(); ibnl_cleanup(); ib_sysfs_cleanup(); /* Make sure that any pending umem accounting work is done. */ destroy_workqueue(ib_wq); Loading Loading
drivers/infiniband/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ menuconfig INFINIBAND tristate "InfiniBand support" depends on PCI || BROKEN depends on HAS_IOMEM depends on NET ---help--- Core support for InfiniBand (IB). Make sure to also select any protocols you wish to use as well as drivers for your Loading
drivers/infiniband/core/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ obj-$(CONFIG_INFINIBAND_USER_ACCESS) += ib_uverbs.o ib_ucm.o \ $(user_access-y) ib_core-y := packer.o ud_header.o verbs.o sysfs.o \ device.o fmr_pool.o cache.o device.o fmr_pool.o cache.o netlink.o ib_core-$(CONFIG_INFINIBAND_USER_MEM) += umem.o ib_mad-y := mad.o smi.o agent.o mad_rmpp.o Loading
drivers/infiniband/core/cm.c +8 −0 Original line number Diff line number Diff line Loading @@ -3639,8 +3639,16 @@ static struct kobj_type cm_port_obj_type = { .release = cm_release_port_obj }; static char *cm_devnode(struct device *dev, mode_t *mode) { *mode = 0666; return kasprintf(GFP_KERNEL, "infiniband/%s", dev_name(dev)); } struct class cm_class = { .owner = THIS_MODULE, .name = "infiniband_cm", .devnode = cm_devnode, }; EXPORT_SYMBOL(cm_class); Loading
drivers/infiniband/core/cma.c +200 −108 File changed.Preview size limit exceeded, changes collapsed. Show changes
drivers/infiniband/core/device.c +22 −3 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ #include <linux/slab.h> #include <linux/init.h> #include <linux/mutex.h> #include <rdma/rdma_netlink.h> #include "core_priv.h" Loading Loading @@ -725,22 +726,40 @@ static int __init ib_core_init(void) return -ENOMEM; ret = ib_sysfs_setup(); if (ret) if (ret) { printk(KERN_WARNING "Couldn't create InfiniBand device class\n"); goto err; } ret = ibnl_init(); if (ret) { printk(KERN_WARNING "Couldn't init IB netlink interface\n"); goto err_sysfs; } ret = ib_cache_setup(); if (ret) { printk(KERN_WARNING "Couldn't set up InfiniBand P_Key/GID cache\n"); ib_sysfs_cleanup(); destroy_workqueue(ib_wq); goto err_nl; } return 0; err_nl: ibnl_cleanup(); err_sysfs: ib_sysfs_cleanup(); err: destroy_workqueue(ib_wq); return ret; } static void __exit ib_core_cleanup(void) { ib_cache_cleanup(); ibnl_cleanup(); ib_sysfs_cleanup(); /* Make sure that any pending umem accounting work is done. */ destroy_workqueue(ib_wq); Loading