Message ID | 20240301-class_cleanup-usb-v1-1-50309e325095@marliere.net (mailing list archive) |
---|---|
State | Accepted |
Commit | c40b51b3f365f6bc903719acc4fac7eed8a56639 |
Headers | show |
Series | usb: typec: constify struct class usage | expand |
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 <gregkh@linuxfoundation.org> > Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> > --- > 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 <ricardo@marliere.net>
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", };
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 <gregkh@linuxfoundation.org> Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net> --- 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(-) --- base-commit: a560a5672826fc1e057068bda93b3d4c98d037a2 change-id: 20240301-class_cleanup-usb-4c3cef5bb0ca Best regards,