diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-10-05 15:43:53 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-10-06 15:38:17 +0200 |
commit | 9565794b1b01011b51d485b662fb6e544628fd63 (patch) | |
tree | b8368133065ef0710c49bad9fbc682fa9e45c00b | |
parent | 06d0b811883b867b9a6336585b9122fcde20f078 (diff) | |
download | lwn-9565794b1b01011b51d485b662fb6e544628fd63.tar.gz lwn-9565794b1b01011b51d485b662fb6e544628fd63.zip |
staging: fieldbus: make controller_class constant
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@gmail.com>
Link: https://lore.kernel.org/r/2023100552-entrench-dingbat-093a@gregkh
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/fieldbus/anybuss/arcx-anybus.c | 17 |
1 files 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); } |