Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

block/rnbd: make all 'class' structures const

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: "Md. Haris Iqbal" <haris.iqbal@ionos.com>
Cc: Jack Wang <jinpu.wang@ionos.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: linux-block@vger.kernel.org
Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Jack Wang <jinpu.wang@ionos.com>
Link: https://lore.kernel.org/r/20230620180129.645646-5-gregkh@linuxfoundation.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Ivan Orlov and committed by
Jens Axboe
137380c0 56e71bdf

+23 -19
+11 -9
drivers/block/rnbd/rnbd-clt-sysfs.c
··· 24 24 #include "rnbd-clt.h" 25 25 26 26 static struct device *rnbd_dev; 27 - static struct class *rnbd_dev_class; 27 + static const struct class rnbd_dev_class = { 28 + .name = "rnbd_client", 29 + }; 28 30 static struct kobject *rnbd_devs_kobj; 29 31 30 32 enum { ··· 648 646 { 649 647 int err; 650 648 651 - rnbd_dev_class = class_create("rnbd-client"); 652 - if (IS_ERR(rnbd_dev_class)) 653 - return PTR_ERR(rnbd_dev_class); 649 + err = class_register(&rnbd_dev_class); 650 + if (err) 651 + return err; 654 652 655 - rnbd_dev = device_create_with_groups(rnbd_dev_class, NULL, 653 + rnbd_dev = device_create_with_groups(&rnbd_dev_class, NULL, 656 654 MKDEV(0, 0), NULL, 657 655 default_attr_groups, "ctl"); 658 656 if (IS_ERR(rnbd_dev)) { ··· 668 666 return 0; 669 667 670 668 dev_destroy: 671 - device_destroy(rnbd_dev_class, MKDEV(0, 0)); 669 + device_destroy(&rnbd_dev_class, MKDEV(0, 0)); 672 670 cls_destroy: 673 - class_destroy(rnbd_dev_class); 671 + class_unregister(&rnbd_dev_class); 674 672 675 673 return err; 676 674 } ··· 680 678 sysfs_remove_group(&rnbd_dev->kobj, &default_attr_group); 681 679 kobject_del(rnbd_devs_kobj); 682 680 kobject_put(rnbd_devs_kobj); 683 - device_destroy(rnbd_dev_class, MKDEV(0, 0)); 684 - class_destroy(rnbd_dev_class); 681 + device_destroy(&rnbd_dev_class, MKDEV(0, 0)); 682 + class_unregister(&rnbd_dev_class); 685 683 }
+12 -10
drivers/block/rnbd/rnbd-srv-sysfs.c
··· 19 19 #include "rnbd-srv.h" 20 20 21 21 static struct device *rnbd_dev; 22 - static struct class *rnbd_dev_class; 22 + static const struct class rnbd_dev_class = { 23 + .name = "rnbd-server", 24 + }; 23 25 static struct kobject *rnbd_devs_kobj; 24 26 25 27 static void rnbd_srv_dev_release(struct kobject *kobj) ··· 215 213 { 216 214 int err; 217 215 218 - rnbd_dev_class = class_create("rnbd-server"); 219 - if (IS_ERR(rnbd_dev_class)) 220 - return PTR_ERR(rnbd_dev_class); 216 + err = class_register(&rnbd_dev_class); 217 + if (err) 218 + return err; 221 219 222 - rnbd_dev = device_create(rnbd_dev_class, NULL, 223 - MKDEV(0, 0), NULL, "ctl"); 220 + rnbd_dev = device_create(&rnbd_dev_class, NULL, 221 + MKDEV(0, 0), NULL, "ctl"); 224 222 if (IS_ERR(rnbd_dev)) { 225 223 err = PTR_ERR(rnbd_dev); 226 224 goto cls_destroy; ··· 234 232 return 0; 235 233 236 234 dev_destroy: 237 - device_destroy(rnbd_dev_class, MKDEV(0, 0)); 235 + device_destroy(&rnbd_dev_class, MKDEV(0, 0)); 238 236 cls_destroy: 239 - class_destroy(rnbd_dev_class); 237 + class_unregister(&rnbd_dev_class); 240 238 241 239 return err; 242 240 } ··· 245 243 { 246 244 kobject_del(rnbd_devs_kobj); 247 245 kobject_put(rnbd_devs_kobj); 248 - device_destroy(rnbd_dev_class, MKDEV(0, 0)); 249 - class_destroy(rnbd_dev_class); 246 + device_destroy(&rnbd_dev_class, MKDEV(0, 0)); 247 + class_unregister(&rnbd_dev_class); 250 248 }