net: devlink: make the devlink_ops::info_get() callback optional
Some drivers only reported the driver name in their devlink_ops::info_get() callback. Now that the core provides this information, the callback became empty. For such drivers, just removing the callback would prevent the core from executing devlink_nl_info_fill() meaning that "devlink dev info" would not return anything. Make the callback function optional by executing devlink_nl_info_fill() even if devlink_ops::info_get() is NULL. N.B.: the drivers with devlink support which previously did not implement devlink_ops::info_get() will now also be able to report the driver name. Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr> Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Родитель
226bf98055
Коммит
c5cd7c8684
|
@ -6847,9 +6847,11 @@ devlink_nl_info_fill(struct sk_buff *msg, struct devlink *devlink,
|
|||
goto err_cancel_msg;
|
||||
|
||||
req.msg = msg;
|
||||
err = devlink->ops->info_get(devlink, &req, extack);
|
||||
if (err)
|
||||
goto err_cancel_msg;
|
||||
if (devlink->ops->info_get) {
|
||||
err = devlink->ops->info_get(devlink, &req, extack);
|
||||
if (err)
|
||||
goto err_cancel_msg;
|
||||
}
|
||||
|
||||
err = devlink_nl_driver_info_get(dev->driver, &req);
|
||||
if (err)
|
||||
|
@ -6870,9 +6872,6 @@ static int devlink_nl_cmd_info_get_doit(struct sk_buff *skb,
|
|||
struct sk_buff *msg;
|
||||
int err;
|
||||
|
||||
if (!devlink->ops->info_get)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
|
||||
if (!msg)
|
||||
return -ENOMEM;
|
||||
|
@ -6898,7 +6897,7 @@ static int devlink_nl_cmd_info_get_dumpit(struct sk_buff *msg,
|
|||
int err = 0;
|
||||
|
||||
devlinks_xa_for_each_registered_get(sock_net(msg->sk), index, devlink) {
|
||||
if (idx < start || !devlink->ops->info_get)
|
||||
if (idx < start)
|
||||
goto inc;
|
||||
|
||||
devl_lock(devlink);
|
||||
|
|
Загрузка…
Ссылка в новой задаче