Re: [PATCH 1/2 net-next] devlink: Constify the 'table_ops' parameter of devl_dpipe_table_register()

From: Wojciech Drewek
Date: Mon Jun 03 2024 - 04:47:26 EST




On 02.06.2024 16:18, Christophe JAILLET wrote:
> "struct devlink_dpipe_table_ops" only contains some function pointers.
>
> Update "struct devlink_dpipe_table" and the 'table_ops' parameter of
> devl_dpipe_table_register() so that structures in drivers can be
> constified.
>
> Constifying these structures will move some data to a read-only section, so
> increase overall security.
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
> ---

Reviewed-by: Wojciech Drewek <wojciech.drewek@xxxxxxxxx>

> include/net/devlink.h | 4 ++--
> net/devlink/dpipe.c | 2 +-
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/include/net/devlink.h b/include/net/devlink.h
> index 35eb0f884386..db5eff6cb60f 100644
> --- a/include/net/devlink.h
> +++ b/include/net/devlink.h
> @@ -352,7 +352,7 @@ struct devlink_dpipe_table {
> bool resource_valid;
> u64 resource_id;
> u64 resource_units;
> - struct devlink_dpipe_table_ops *table_ops;
> + const struct devlink_dpipe_table_ops *table_ops;
> struct rcu_head rcu;
> };
>
> @@ -1751,7 +1751,7 @@ void devl_sb_unregister(struct devlink *devlink, unsigned int sb_index);
> void devlink_sb_unregister(struct devlink *devlink, unsigned int sb_index);
> int devl_dpipe_table_register(struct devlink *devlink,
> const char *table_name,
> - struct devlink_dpipe_table_ops *table_ops,
> + const struct devlink_dpipe_table_ops *table_ops,
> void *priv, bool counter_control_extern);
> void devl_dpipe_table_unregister(struct devlink *devlink,
> const char *table_name);
> diff --git a/net/devlink/dpipe.c b/net/devlink/dpipe.c
> index a72a9292efc5..55009b377447 100644
> --- a/net/devlink/dpipe.c
> +++ b/net/devlink/dpipe.c
> @@ -839,7 +839,7 @@ EXPORT_SYMBOL_GPL(devlink_dpipe_table_counter_enabled);
> */
> int devl_dpipe_table_register(struct devlink *devlink,
> const char *table_name,
> - struct devlink_dpipe_table_ops *table_ops,
> + const struct devlink_dpipe_table_ops *table_ops,
> void *priv, bool counter_control_extern)
> {
> struct devlink_dpipe_table *table;