devlink: take device reference for devlink object
In preparation to allow to access device pointer without devlink
instance lock held, make sure the device pointer is usable until
devlink_release() is called.
Fixes: c137743bce
("devlink: introduce object and nested devlink relationship infra")
Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c503bc7df6
commit
a380687200
@ -310,6 +310,7 @@ static void devlink_release(struct work_struct *work)
|
||||
|
||||
mutex_destroy(&devlink->lock);
|
||||
lockdep_unregister_key(&devlink->lock_key);
|
||||
put_device(devlink->dev);
|
||||
kfree(devlink);
|
||||
}
|
||||
|
||||
@ -425,7 +426,7 @@ struct devlink *devlink_alloc_ns(const struct devlink_ops *ops,
|
||||
if (ret < 0)
|
||||
goto err_xa_alloc;
|
||||
|
||||
devlink->dev = dev;
|
||||
devlink->dev = get_device(dev);
|
||||
devlink->ops = ops;
|
||||
xa_init_flags(&devlink->ports, XA_FLAGS_ALLOC);
|
||||
xa_init_flags(&devlink->params, XA_FLAGS_ALLOC);
|
||||
|
Loading…
Reference in New Issue
Block a user