Lines Matching refs:ib_dev
188 static void free_netdevs(struct ib_device *ib_dev);
767 pdata->ib_dev = device; in alloc_port_data()
1410 static void __ib_unregister_device(struct ib_device *ib_dev) in __ib_unregister_device() argument
1419 mutex_lock(&ib_dev->unregistration_lock); in __ib_unregister_device()
1420 if (!refcount_read(&ib_dev->refcount)) in __ib_unregister_device()
1423 disable_device(ib_dev); in __ib_unregister_device()
1426 free_netdevs(ib_dev); in __ib_unregister_device()
1428 ib_device_unregister_sysfs(ib_dev); in __ib_unregister_device()
1429 device_del(&ib_dev->dev); in __ib_unregister_device()
1430 ib_device_unregister_rdmacg(ib_dev); in __ib_unregister_device()
1431 ib_cache_cleanup_one(ib_dev); in __ib_unregister_device()
1437 if (ib_dev->ops.dealloc_driver) { in __ib_unregister_device()
1438 WARN_ON(kref_read(&ib_dev->dev.kobj.kref) <= 1); in __ib_unregister_device()
1439 ib_dealloc_device(ib_dev); in __ib_unregister_device()
1442 mutex_unlock(&ib_dev->unregistration_lock); in __ib_unregister_device()
1459 void ib_unregister_device(struct ib_device *ib_dev) in ib_unregister_device() argument
1461 get_device(&ib_dev->dev); in ib_unregister_device()
1462 __ib_unregister_device(ib_dev); in ib_unregister_device()
1463 put_device(&ib_dev->dev); in ib_unregister_device()
1481 void ib_unregister_device_and_put(struct ib_device *ib_dev) in ib_unregister_device_and_put() argument
1483 WARN_ON(!ib_dev->ops.dealloc_driver); in ib_unregister_device_and_put()
1484 get_device(&ib_dev->dev); in ib_unregister_device_and_put()
1485 ib_device_put(ib_dev); in ib_unregister_device_and_put()
1486 __ib_unregister_device(ib_dev); in ib_unregister_device_and_put()
1487 put_device(&ib_dev->dev); in ib_unregister_device_and_put()
1507 struct ib_device *ib_dev; in ib_unregister_driver() local
1511 xa_for_each (&devices, index, ib_dev) { in ib_unregister_driver()
1512 if (ib_dev->ops.driver_id != driver_id) in ib_unregister_driver()
1515 get_device(&ib_dev->dev); in ib_unregister_driver()
1518 WARN_ON(!ib_dev->ops.dealloc_driver); in ib_unregister_driver()
1519 __ib_unregister_device(ib_dev); in ib_unregister_driver()
1521 put_device(&ib_dev->dev); in ib_unregister_driver()
1530 struct ib_device *ib_dev = in ib_unregister_work() local
1533 __ib_unregister_device(ib_dev); in ib_unregister_work()
1534 put_device(&ib_dev->dev); in ib_unregister_work()
1548 void ib_unregister_device_queued(struct ib_device *ib_dev) in ib_unregister_device_queued() argument
1550 WARN_ON(!refcount_read(&ib_dev->refcount)); in ib_unregister_device_queued()
1551 WARN_ON(!ib_dev->ops.dealloc_driver); in ib_unregister_device_queued()
1552 get_device(&ib_dev->dev); in ib_unregister_device_queued()
1553 if (!queue_work(system_unbound_wq, &ib_dev->unregistration_work)) in ib_unregister_device_queued()
1554 put_device(&ib_dev->dev); in ib_unregister_device_queued()
2106 int ib_device_set_netdev(struct ib_device *ib_dev, struct net_device *ndev, in ib_device_set_netdev() argument
2118 ret = alloc_port_data(ib_dev); in ib_device_set_netdev()
2122 if (!rdma_is_port_valid(ib_dev, port)) in ib_device_set_netdev()
2125 pdata = &ib_dev->port_data[port]; in ib_device_set_netdev()
2147 static void free_netdevs(struct ib_device *ib_dev) in free_netdevs() argument
2152 if (!ib_dev->port_data) in free_netdevs()
2155 rdma_for_each_port (ib_dev, port) { in free_netdevs()
2156 struct ib_port_data *pdata = &ib_dev->port_data[port]; in free_netdevs()
2180 struct net_device *ib_device_get_netdev(struct ib_device *ib_dev, in ib_device_get_netdev() argument
2186 if (!rdma_is_port_valid(ib_dev, port)) in ib_device_get_netdev()
2189 pdata = &ib_dev->port_data[port]; in ib_device_get_netdev()
2195 if (ib_dev->ops.get_netdev) in ib_device_get_netdev()
2196 res = ib_dev->ops.get_netdev(ib_dev, port); in ib_device_get_netdev()
2238 cur->ib_dev->ops.driver_id == driver_id) && in ib_device_get_by_netdev()
2239 ib_device_try_get(cur->ib_dev)) { in ib_device_get_by_netdev()
2240 res = cur->ib_dev; in ib_device_get_by_netdev()
2262 void ib_enum_roce_netdev(struct ib_device *ib_dev, in ib_enum_roce_netdev() argument
2270 rdma_for_each_port (ib_dev, port) in ib_enum_roce_netdev()
2271 if (rdma_protocol_roce(ib_dev, port)) { in ib_enum_roce_netdev()
2273 ib_device_get_netdev(ib_dev, port); in ib_enum_roce_netdev()
2275 if (filter(ib_dev, port, idev, filter_cookie)) in ib_enum_roce_netdev()
2276 cb(ib_dev, port, idev, cookie); in ib_enum_roce_netdev()