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 structures typec_mux_class, retimer_class and
typec_class to be declared at build time placing them 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/usb/typec/class.c | 2 +-
drivers/usb/typec/class.h | 6 +++---
drivers/usb/typec/mux.c | 2 +-
drivers/usb/typec/retimer.c | 2 +-
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
index caea2b829980..389c7f0b8d93 100644
--- a/drivers/usb/typec/class.c
+++ b/drivers/usb/typec/class.c
@@ -21,7 +21,7 @@
static DEFINE_IDA(typec_index_ida);
-struct class typec_class = {
+const struct class typec_class = {
.name = "typec",
};
diff --git a/drivers/usb/typec/class.h b/drivers/usb/typec/class.h
index 759b98355eeb..7485cdb9dd20 100644
--- a/drivers/usb/typec/class.h
+++ b/drivers/usb/typec/class.h
@@ -93,9 +93,9 @@ extern const struct device_type typec_port_dev_type;
#define is_typec_plug(dev) ((dev)->type == &typec_plug_dev_type)
#define is_typec_port(dev) ((dev)->type == &typec_port_dev_type)
-extern struct class typec_mux_class;
-extern struct class retimer_class;
-extern struct class typec_class;
+extern const struct class typec_mux_class;
+extern const struct class retimer_class;
+extern const struct class typec_class;
#if defined(CONFIG_ACPI)
int typec_link_ports(struct typec_port *connector);
diff --git a/drivers/usb/typec/mux.c b/drivers/usb/typec/mux.c
index 80dd91938d96..49926d6e72c7 100644
--- a/drivers/usb/typec/mux.c
+++ b/drivers/usb/typec/mux.c
@@ -469,6 +469,6 @@ void *typec_mux_get_drvdata(struct typec_mux_dev *mux_dev)
}
EXPORT_SYMBOL_GPL(typec_mux_get_drvdata);
-struct class typec_mux_class = {
+const struct class typec_mux_class = {
.name = "typec_mux",
};
diff --git a/drivers/usb/typec/retimer.c b/drivers/usb/typec/retimer.c
index 4a7d1b5c4d86..b519fcf358ca 100644
--- a/drivers/usb/typec/retimer.c
+++ b/drivers/usb/typec/retimer.c
@@ -155,6 +155,6 @@ void *typec_retimer_get_drvdata(struct typec_retimer *retimer)
}
EXPORT_SYMBOL_GPL(typec_retimer_get_drvdata);
-struct class retimer_class = {
+const struct class retimer_class = {
.name = "retimer",
};
---
base-commit: a560a5672826fc1e057068bda93b3d4c98d037a2
change-id: 20240301-class_cleanup-usb-4c3cef5bb0ca
Best regards,
--
Ricardo B. Marliere <[email protected]>
On Fri, Mar 01, 2024 at 06:19:28PM -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 structures typec_mux_class, retimer_class and
> typec_class to be declared at build time placing them 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]>
Reviewed-by: Heikki Krogerus <[email protected]>
> ---
> drivers/usb/typec/class.c | 2 +-
> drivers/usb/typec/class.h | 6 +++---
> drivers/usb/typec/mux.c | 2 +-
> drivers/usb/typec/retimer.c | 2 +-
> 4 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
> index caea2b829980..389c7f0b8d93 100644
> --- a/drivers/usb/typec/class.c
> +++ b/drivers/usb/typec/class.c
> @@ -21,7 +21,7 @@
>
> static DEFINE_IDA(typec_index_ida);
>
> -struct class typec_class = {
> +const struct class typec_class = {
> .name = "typec",
> };
>
> diff --git a/drivers/usb/typec/class.h b/drivers/usb/typec/class.h
> index 759b98355eeb..7485cdb9dd20 100644
> --- a/drivers/usb/typec/class.h
> +++ b/drivers/usb/typec/class.h
> @@ -93,9 +93,9 @@ extern const struct device_type typec_port_dev_type;
> #define is_typec_plug(dev) ((dev)->type == &typec_plug_dev_type)
> #define is_typec_port(dev) ((dev)->type == &typec_port_dev_type)
>
> -extern struct class typec_mux_class;
> -extern struct class retimer_class;
> -extern struct class typec_class;
> +extern const struct class typec_mux_class;
> +extern const struct class retimer_class;
> +extern const struct class typec_class;
>
> #if defined(CONFIG_ACPI)
> int typec_link_ports(struct typec_port *connector);
> diff --git a/drivers/usb/typec/mux.c b/drivers/usb/typec/mux.c
> index 80dd91938d96..49926d6e72c7 100644
> --- a/drivers/usb/typec/mux.c
> +++ b/drivers/usb/typec/mux.c
> @@ -469,6 +469,6 @@ void *typec_mux_get_drvdata(struct typec_mux_dev *mux_dev)
> }
> EXPORT_SYMBOL_GPL(typec_mux_get_drvdata);
>
> -struct class typec_mux_class = {
> +const struct class typec_mux_class = {
> .name = "typec_mux",
> };
> diff --git a/drivers/usb/typec/retimer.c b/drivers/usb/typec/retimer.c
> index 4a7d1b5c4d86..b519fcf358ca 100644
> --- a/drivers/usb/typec/retimer.c
> +++ b/drivers/usb/typec/retimer.c
> @@ -155,6 +155,6 @@ void *typec_retimer_get_drvdata(struct typec_retimer *retimer)
> }
> EXPORT_SYMBOL_GPL(typec_retimer_get_drvdata);
>
> -struct class retimer_class = {
> +const struct class retimer_class = {
> .name = "retimer",
> };
>
> ---
> base-commit: a560a5672826fc1e057068bda93b3d4c98d037a2
> change-id: 20240301-class_cleanup-usb-4c3cef5bb0ca
>
> Best regards,
> --
> Ricardo B. Marliere <[email protected]>
--
heikki