mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-14 16:44:29 +08:00
devlink: Add APIs to publish, unpublish individual parameter
Enable drivers to publish/unpublish individual parameter. Signed-off-by: Parav Pandit <parav@nvidia.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b40c51efef
commit
9c4a7665b4
@ -1651,6 +1651,10 @@ void devlink_param_unregister(struct devlink *devlink,
|
|||||||
const struct devlink_param *param);
|
const struct devlink_param *param);
|
||||||
void devlink_params_publish(struct devlink *devlink);
|
void devlink_params_publish(struct devlink *devlink);
|
||||||
void devlink_params_unpublish(struct devlink *devlink);
|
void devlink_params_unpublish(struct devlink *devlink);
|
||||||
|
void devlink_param_publish(struct devlink *devlink,
|
||||||
|
const struct devlink_param *param);
|
||||||
|
void devlink_param_unpublish(struct devlink *devlink,
|
||||||
|
const struct devlink_param *param);
|
||||||
int devlink_port_params_register(struct devlink_port *devlink_port,
|
int devlink_port_params_register(struct devlink_port *devlink_port,
|
||||||
const struct devlink_param *params,
|
const struct devlink_param *params,
|
||||||
size_t params_count);
|
size_t params_count);
|
||||||
|
@ -9982,6 +9982,54 @@ void devlink_params_unpublish(struct devlink *devlink)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(devlink_params_unpublish);
|
EXPORT_SYMBOL_GPL(devlink_params_unpublish);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* devlink_param_publish - publish one configuration parameter
|
||||||
|
*
|
||||||
|
* @devlink: devlink
|
||||||
|
* @param: one configuration parameter
|
||||||
|
*
|
||||||
|
* Publish previously registered configuration parameter.
|
||||||
|
*/
|
||||||
|
void devlink_param_publish(struct devlink *devlink,
|
||||||
|
const struct devlink_param *param)
|
||||||
|
{
|
||||||
|
struct devlink_param_item *param_item;
|
||||||
|
|
||||||
|
list_for_each_entry(param_item, &devlink->param_list, list) {
|
||||||
|
if (param_item->param != param || param_item->published)
|
||||||
|
continue;
|
||||||
|
param_item->published = true;
|
||||||
|
devlink_param_notify(devlink, 0, param_item,
|
||||||
|
DEVLINK_CMD_PARAM_NEW);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(devlink_param_publish);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* devlink_param_unpublish - unpublish one configuration parameter
|
||||||
|
*
|
||||||
|
* @devlink: devlink
|
||||||
|
* @param: one configuration parameter
|
||||||
|
*
|
||||||
|
* Unpublish previously registered configuration parameter.
|
||||||
|
*/
|
||||||
|
void devlink_param_unpublish(struct devlink *devlink,
|
||||||
|
const struct devlink_param *param)
|
||||||
|
{
|
||||||
|
struct devlink_param_item *param_item;
|
||||||
|
|
||||||
|
list_for_each_entry(param_item, &devlink->param_list, list) {
|
||||||
|
if (param_item->param != param || !param_item->published)
|
||||||
|
continue;
|
||||||
|
param_item->published = false;
|
||||||
|
devlink_param_notify(devlink, 0, param_item,
|
||||||
|
DEVLINK_CMD_PARAM_DEL);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(devlink_param_unpublish);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* devlink_port_params_register - register port configuration parameters
|
* devlink_port_params_register - register port configuration parameters
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user