2024-03-07 11:35:14

by Ricardo B. Marliere

[permalink] [raw]
Subject: [PATCH] remoteproc: make rproc_class constant

Since commit 43a7206b0963 ("driver core: class: make class_register() take
a const *"), the driver core allows for struct class to be in read-only
memory, so move the rproc_class structure to be declared at build time
placing it into read-only memory, instead of having to be dynamically
allocated at boot time.

Cc: Greg Kroah-Hartman <[email protected]>
Suggested-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Ricardo B. Marliere <[email protected]>
---
drivers/remoteproc/remoteproc_internal.h | 2 +-
drivers/remoteproc/remoteproc_sysfs.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/remoteproc/remoteproc_internal.h b/drivers/remoteproc/remoteproc_internal.h
index f62a82d71dfa..0cd09e67ac14 100644
--- a/drivers/remoteproc/remoteproc_internal.h
+++ b/drivers/remoteproc/remoteproc_internal.h
@@ -72,7 +72,7 @@ void rproc_init_debugfs(void);
void rproc_exit_debugfs(void);

/* from remoteproc_sysfs.c */
-extern struct class rproc_class;
+extern const struct class rproc_class;
int rproc_init_sysfs(void);
void rproc_exit_sysfs(void);

diff --git a/drivers/remoteproc/remoteproc_sysfs.c b/drivers/remoteproc/remoteproc_sysfs.c
index 8c7ea8922638..138e752c5e4e 100644
--- a/drivers/remoteproc/remoteproc_sysfs.c
+++ b/drivers/remoteproc/remoteproc_sysfs.c
@@ -254,7 +254,7 @@ static const struct attribute_group *rproc_devgroups[] = {
NULL
};

-struct class rproc_class = {
+const struct class rproc_class = {
.name = "remoteproc",
.dev_groups = rproc_devgroups,
};

---
base-commit: 8b46dc5cfa5ffea279aed0fc05dc4b1c39a51517
change-id: 20240305-class_cleanup-remoteproc2-f1212934f990

Best regards,
--
Ricardo B. Marliere <[email protected]>



2024-03-11 15:52:19

by Mathieu Poirier

[permalink] [raw]
Subject: Re: [PATCH] remoteproc: make rproc_class constant

Hi Ricardo,

On Tue, Mar 05, 2024 at 04:40:23PM -0300, Ricardo B. Marliere wrote:
> Since commit 43a7206b0963 ("driver core: class: make class_register() take
> a const *"), the driver core allows for struct class to be in read-only
> memory, so move the rproc_class structure to be declared at build time
> placing it into read-only memory, instead of having to be dynamically
> allocated at boot time.
>
> Cc: Greg Kroah-Hartman <[email protected]>
> Suggested-by: Greg Kroah-Hartman <[email protected]>
> Signed-off-by: Ricardo B. Marliere <[email protected]>
> ---
> drivers/remoteproc/remoteproc_internal.h | 2 +-
> drivers/remoteproc/remoteproc_sysfs.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/remoteproc/remoteproc_internal.h b/drivers/remoteproc/remoteproc_internal.h
> index f62a82d71dfa..0cd09e67ac14 100644
> --- a/drivers/remoteproc/remoteproc_internal.h
> +++ b/drivers/remoteproc/remoteproc_internal.h
> @@ -72,7 +72,7 @@ void rproc_init_debugfs(void);
> void rproc_exit_debugfs(void);
>
> /* from remoteproc_sysfs.c */
> -extern struct class rproc_class;
> +extern const struct class rproc_class;
> int rproc_init_sysfs(void);
> void rproc_exit_sysfs(void);
>
> diff --git a/drivers/remoteproc/remoteproc_sysfs.c b/drivers/remoteproc/remoteproc_sysfs.c
> index 8c7ea8922638..138e752c5e4e 100644
> --- a/drivers/remoteproc/remoteproc_sysfs.c
> +++ b/drivers/remoteproc/remoteproc_sysfs.c
> @@ -254,7 +254,7 @@ static const struct attribute_group *rproc_devgroups[] = {
> NULL
> };
>
> -struct class rproc_class = {
> +const struct class rproc_class = {
> .name = "remoteproc",
> .dev_groups = rproc_devgroups,
> };
>

I am in agreement with both patches and will add them to 6.9-rc1 when it comes
out.

Thanks,
Mathieu

> ---
> base-commit: 8b46dc5cfa5ffea279aed0fc05dc4b1c39a51517
> change-id: 20240305-class_cleanup-remoteproc2-f1212934f990
>
> Best regards,
> --
> Ricardo B. Marliere <[email protected]>
>