Now that the driver core allows for struct class to be in read-only memory, making all 'class' structures to be declared at build time placing them into read-only memory, instead of having to be dynamically allocated at load time. Cc: Sven Van Asbroeck <TheSven73@xxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/staging/fieldbus/anybuss/arcx-anybus.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/staging/fieldbus/anybuss/arcx-anybus.c b/drivers/staging/fieldbus/anybuss/arcx-anybus.c index 6f69758a8b27..34d18b09bedd 100644 --- a/drivers/staging/fieldbus/anybuss/arcx-anybus.c +++ b/drivers/staging/fieldbus/anybuss/arcx-anybus.c @@ -218,7 +218,10 @@ static const struct regulator_desc can_power_desc = { .ops = &can_power_ops, }; -static struct class *controller_class; +static const struct class controller_class = { + .name = "arcx_anybus_controller", +}; + static DEFINE_IDA(controller_index_ida); static int controller_probe(struct platform_device *pdev) @@ -301,7 +304,7 @@ static int controller_probe(struct platform_device *pdev) err = -ENOMEM; goto out_ida; } - cd->class_dev->class = controller_class; + cd->class_dev->class = &controller_class; cd->class_dev->groups = controller_attribute_groups; cd->class_dev->parent = dev; cd->class_dev->id = id; @@ -351,12 +354,12 @@ static int __init controller_init(void) { int err; - controller_class = class_create("arcx_anybus_controller"); - if (IS_ERR(controller_class)) - return PTR_ERR(controller_class); + err = class_register(&controller_class); + if (err) + return err; err = platform_driver_register(&controller_driver); if (err) - class_destroy(controller_class); + class_unregister(&controller_class); return err; } @@ -364,7 +367,7 @@ static int __init controller_init(void) static void __exit controller_exit(void) { platform_driver_unregister(&controller_driver); - class_destroy(controller_class); + class_unregister(&controller_class); ida_destroy(&controller_index_ida); } -- 2.42.0