Message ID | 20190213172310.1681-2-leon@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Jason Gunthorpe |
Headers | show |
Series | Register infiniband class as net namespace aware class | expand |
On Wed, Feb 13, 2019 at 07:23:03PM +0200, Leon Romanovsky wrote: > From: Parav Pandit <parav@mellanox.com> > > Instead of holding extra reference using get_device() that > device_unregister() releases, simplify it as below. > > device_add() balance with device_del(). > device_initialize() balance with put_device(). > > Signed-off-by: Parav Pandit <parav@mellanox.com> > Signed-off-by: Leon Romanovsky <leonro@mellanox.com> > --- > drivers/infiniband/core/device.c | 1 + > drivers/infiniband/core/sysfs.c | 7 ++----- > 2 files changed, 3 insertions(+), 5 deletions(-) Applied to for-next Thanks, Jason
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c index 868d656f3dda..b9baa4a15b42 100644 --- a/drivers/infiniband/core/device.c +++ b/drivers/infiniband/core/device.c @@ -373,6 +373,7 @@ void ib_dealloc_device(struct ib_device *device) WARN_ON(!xa_empty(&device->client_data)); WARN_ON(refcount_read(&device->refcount)); rdma_restrack_clean(device); + /* Balance with device_initialize */ put_device(&device->dev); } EXPORT_SYMBOL(ib_dealloc_device); diff --git a/drivers/infiniband/core/sysfs.c b/drivers/infiniband/core/sysfs.c index c75692802da8..824bd2c283f2 100644 --- a/drivers/infiniband/core/sysfs.c +++ b/drivers/infiniband/core/sysfs.c @@ -1351,15 +1351,12 @@ int ib_device_register_sysfs(struct ib_device *device) void ib_device_unregister_sysfs(struct ib_device *device) { - /* Hold device until ib_dealloc_device() */ - get_device(&device->dev); - free_port_list_attributes(device); if (device->hw_stats) { kfree(device->hw_stats); free_hsag(&device->dev.kobj, device->hw_stats_ag); } - - device_unregister(&device->dev); + /* Balance with device_add */ + device_del(&device->dev); }