"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@wanadoo.fr>
---
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;
--
2.45.1
On Sun, Jun 02, 2024 at 04:18:52PM +0200, 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@wanadoo.fr> Reviewed-by: Ido Schimmel <idosch@nvidia.com>
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@wanadoo.fr>
> ---
Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
> 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;
© 2016 - 2026 Red Hat, Inc.