Lines Matching refs:ib_dev

213 static void free_netdevs(struct ib_device *ib_dev);
857 pdata->ib_dev = device; in alloc_port_data()
1380 static void prevent_dealloc_device(struct ib_device *ib_dev) in prevent_dealloc_device() argument
1530 static void __ib_unregister_device(struct ib_device *ib_dev) in __ib_unregister_device() argument
1534 mutex_lock(&ib_dev->subdev_lock); in __ib_unregister_device()
1536 &ib_dev->subdev_list_head, in __ib_unregister_device()
1539 ib_dev->ops.del_sub_dev(sub); in __ib_unregister_device()
1540 ib_device_put(ib_dev); in __ib_unregister_device()
1542 mutex_unlock(&ib_dev->subdev_lock); in __ib_unregister_device()
1551 mutex_lock(&ib_dev->unregistration_lock); in __ib_unregister_device()
1552 if (!refcount_read(&ib_dev->refcount)) in __ib_unregister_device()
1555 disable_device(ib_dev); in __ib_unregister_device()
1556 rdma_nl_notify_event(ib_dev, 0, RDMA_UNREGISTER_EVENT); in __ib_unregister_device()
1559 free_netdevs(ib_dev); in __ib_unregister_device()
1561 ib_free_port_attrs(&ib_dev->coredev); in __ib_unregister_device()
1562 device_del(&ib_dev->dev); in __ib_unregister_device()
1563 ib_device_unregister_rdmacg(ib_dev); in __ib_unregister_device()
1564 ib_cache_cleanup_one(ib_dev); in __ib_unregister_device()
1570 if (ib_dev->ops.dealloc_driver && in __ib_unregister_device()
1571 ib_dev->ops.dealloc_driver != prevent_dealloc_device) { in __ib_unregister_device()
1572 WARN_ON(kref_read(&ib_dev->dev.kobj.kref) <= 1); in __ib_unregister_device()
1573 ib_dealloc_device(ib_dev); in __ib_unregister_device()
1576 mutex_unlock(&ib_dev->unregistration_lock); in __ib_unregister_device()
1593 void ib_unregister_device(struct ib_device *ib_dev) in ib_unregister_device() argument
1595 get_device(&ib_dev->dev); in ib_unregister_device()
1596 __ib_unregister_device(ib_dev); in ib_unregister_device()
1597 put_device(&ib_dev->dev); in ib_unregister_device()
1615 void ib_unregister_device_and_put(struct ib_device *ib_dev) in ib_unregister_device_and_put() argument
1617 WARN_ON(!ib_dev->ops.dealloc_driver); in ib_unregister_device_and_put()
1618 get_device(&ib_dev->dev); in ib_unregister_device_and_put()
1619 ib_device_put(ib_dev); in ib_unregister_device_and_put()
1620 __ib_unregister_device(ib_dev); in ib_unregister_device_and_put()
1621 put_device(&ib_dev->dev); in ib_unregister_device_and_put()
1641 struct ib_device *ib_dev; in ib_unregister_driver() local
1645 xa_for_each (&devices, index, ib_dev) { in ib_unregister_driver()
1646 if (ib_dev->ops.driver_id != driver_id) in ib_unregister_driver()
1649 get_device(&ib_dev->dev); in ib_unregister_driver()
1652 WARN_ON(!ib_dev->ops.dealloc_driver); in ib_unregister_driver()
1653 __ib_unregister_device(ib_dev); in ib_unregister_driver()
1655 put_device(&ib_dev->dev); in ib_unregister_driver()
1664 struct ib_device *ib_dev = in ib_unregister_work() local
1667 __ib_unregister_device(ib_dev); in ib_unregister_work()
1668 put_device(&ib_dev->dev); in ib_unregister_work()
1682 void ib_unregister_device_queued(struct ib_device *ib_dev) in ib_unregister_device_queued() argument
1684 WARN_ON(!refcount_read(&ib_dev->refcount)); in ib_unregister_device_queued()
1685 WARN_ON(!ib_dev->ops.dealloc_driver); in ib_unregister_device_queued()
1686 get_device(&ib_dev->dev); in ib_unregister_device_queued()
1687 if (!queue_work(ib_unreg_wq, &ib_dev->unregistration_work)) in ib_unregister_device_queued()
1688 put_device(&ib_dev->dev); in ib_unregister_device_queued()
2222 int ib_device_set_netdev(struct ib_device *ib_dev, struct net_device *ndev, in ib_device_set_netdev() argument
2231 if (!rdma_is_port_valid(ib_dev, port)) in ib_device_set_netdev()
2238 ret = alloc_port_data(ib_dev); in ib_device_set_netdev()
2242 pdata = &ib_dev->port_data[port]; in ib_device_set_netdev()
2259 if (xa_load(&devices, ib_dev->index) != ib_dev) in ib_device_set_netdev()
2263 rdma_nl_notify_event(ib_dev, port, etype); in ib_device_set_netdev()
2269 static void free_netdevs(struct ib_device *ib_dev) in free_netdevs() argument
2274 if (!ib_dev->port_data) in free_netdevs()
2277 rdma_for_each_port (ib_dev, port) { in free_netdevs()
2278 struct ib_port_data *pdata = &ib_dev->port_data[port]; in free_netdevs()
2302 struct net_device *ib_device_get_netdev(struct ib_device *ib_dev, in ib_device_get_netdev() argument
2308 if (!rdma_is_port_valid(ib_dev, port)) in ib_device_get_netdev()
2311 if (!ib_dev->port_data) in ib_device_get_netdev()
2314 pdata = &ib_dev->port_data[port]; in ib_device_get_netdev()
2320 if (ib_dev->ops.get_netdev) in ib_device_get_netdev()
2321 res = ib_dev->ops.get_netdev(ib_dev, port); in ib_device_get_netdev()
2381 cur->ib_dev->ops.driver_id == driver_id) && in ib_device_get_by_netdev()
2382 ib_device_try_get(cur->ib_dev)) { in ib_device_get_by_netdev()
2383 res = cur->ib_dev; in ib_device_get_by_netdev()
2405 void ib_enum_roce_netdev(struct ib_device *ib_dev, in ib_enum_roce_netdev() argument
2413 rdma_for_each_port (ib_dev, port) in ib_enum_roce_netdev()
2414 if (rdma_protocol_roce(ib_dev, port)) { in ib_enum_roce_netdev()
2416 ib_device_get_netdev(ib_dev, port); in ib_enum_roce_netdev()
2418 if (filter(ib_dev, port, idev, filter_cookie)) in ib_enum_roce_netdev()
2419 cb(ib_dev, port, idev, cookie); in ib_enum_roce_netdev()