summaryrefslogtreecommitdiff
path: root/drivers/vhost
diff options
context:
space:
mode:
authorJason Gunthorpe <jgg@mellanox.com>2019-02-13 07:12:53 +0300
committerJason Gunthorpe <jgg@mellanox.com>2019-02-20 06:52:18 +0300
commitd0899892edd089790eb17943ecf28254a909deae (patch)
tree2ed07c35f012e9ce92e992b0fcb2e88df0173f46 /drivers/vhost
parent4c173f596b3ffe6b967f5818043665c565648809 (diff)
downloadlinux-d0899892edd089790eb17943ecf28254a909deae.tar.xz
RDMA/device: Provide APIs from the core code to help unregistration
These APIs are intended to support drivers that exist outside the usual driver core probe()/remove() callbacks. Normally the driver core will prevent remove() from running concurrently with probe(), once this safety is lost drivers need more support to get the locking and lifetimes right. ib_unregister_driver() is intended to be used during module_exit of a driver using these APIs. It unregisters all the associated ib_devices. ib_unregister_device_and_put() is to be used by a driver-specific removal function (ie removal by name, removal from a netdev notifier, removal from netlink) ib_unregister_queued() is to be used from netdev notifier chains where RTNL is held. The locking is tricky here since once things become async it is possible to race unregister with registration. This is largely solved by relying on the registration refcount, unregistration will only ever work on something that has a positive registration refcount - and then an unregistration mutex serializes all competing unregistrations of the same device. Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'drivers/vhost')
0 files changed, 0 insertions, 0 deletions